2018/08 作者:ihunter 0 次 0
这篇介绍kafka一些基本操作和概念
kafka术语:
massage: kafka中最基本的传递对象,有固定格式。
topic: 一类消息,如page view,click行为等。
producer: 产生信息的主体,可以是服务器日志信息等。
consumer: 消费producer产生话题消息的主体。
broker: 消息处理结点,多个broker组成kafka集群。
partition: topic的物理分组,每个partition都是一个有序队列。
segment: 多个大小相等的段组成了一个partition。
offset: 一个连续的用于定位被追加到分区的每一个消息的序列号,最大值为64位的long大小,19位数字字符长度。
启动kafka集群
./data/server/kafka/bin/kafka-server-start.sh -daemon /data/server/kafka/config/server.properties &
创建topic
新建test002 topic 副本数为3,10个分区,副本数不能超过broker个数 --zookeeper为zookeeper集群加路径(这里不加路径也可以,如果不加路径,zookeeper集群只能管理一个kafka,加路径zookeeper可以管理不同的kafka)
/data/server/kafka/bin/kafka-topics.sh --zookeeper 10.204.243.85:2181,10.204.243.86:2181,10.204.243.87:2181/zk001 --create --replication-factor 3 --partitions 10 --topic test002
查看全部topic
/data/server/kafka/bin/kafka-topics.sh --zookeeper 10.204.243.85:2181,10.204.243.86:2181,10.204.243.87:2181/zk001 --list
查看指定的topic
/data/server/kafka/bin/kafka-topics.sh --zookeeper 10.204.243.85:2181,10.204.243.86:2181,10.204.243.87:2181/zk001 --describe --topic test002
查看所有topic详细信息
/data/server/kafka/bin/kafka-topics.sh --zookeeper 10.204.243.85:2181,10.204.243.86:2181,10.204.243.87:2181/zk001 --describe
删除topic
/data/server/kafka/bin/kafka-topics.sh --zookeeper 10.204.243.85:2181,10.204.243.86:2181,10.204.243.87:2181/zk001 --topic test002 --delete
新增分区
如图 test001 只有5个分区,现在我们手动把分区增加到10个(分区只能增加,不能减少)
/data/server/kafka/bin/kafka-topics.sh --zookeeper 10.204.243.85:2181,10.204.243.86:2181,10.204.243.87:2181/zk001 --alter --topic test001 --partitions 10
动态增加Topic的副本(Replication)
先创建一个副本 为2的 topic test002, 现在在增加一个副本
新建一个ddReplicas.json
{
"version": 1,
"partitions": [
{
"topic": "test002",
"partition": 0,
"replicas": [
2,
1,
0
]
},
{
"topic": "test002",
"partition": 1,
"replicas": [
0,
2,
1
]
},
{
"topic": "test002",
"partition": 2,
"replicas": [
1,
0,
2
]
}
]
}
注意格式
执行
/data/server/kafka/bin/kafka-reassign-partitions.sh --zookeeper 10.204.243.85:2181,10.204.243.86:2181,10.204.243.87:2181/zk001 --reassignment-json-file ddReplicas.json --execute
副本数为3
上篇:
分布式深度学习新进展:让“分布式”和“深度学习”真正深度融合
下篇:
阿里巴巴又开源了:蚂蚁金服分布式中间件之微服务SOFAMesh