Linux 分布式消息系统Kafka 常规操作

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 &

Linux 分布式消息系统Kafka 常规操作


创建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

Linux 分布式消息系统Kafka 常规操作


查看全部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

Linux 分布式消息系统Kafka 常规操作


查看指定的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

Linux 分布式消息系统Kafka 常规操作


查看所有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

Linux 分布式消息系统Kafka 常规操作


删除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

Linux 分布式消息系统Kafka 常规操作


新增分区

如图 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

Linux 分布式消息系统Kafka 常规操作


Linux 分布式消息系统Kafka 常规操作


动态增加Topic的副本(Replication)

先创建一个副本 为2的 topic test002, 现在在增加一个副本

Linux 分布式消息系统Kafka 常规操作


新建一个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

]

}

]

}

Linux 分布式消息系统Kafka 常规操作


注意格式

执行

/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

Linux 分布式消息系统Kafka 常规操作


副本数为3

Linux 分布式消息系统Kafka 常规操作


赞(1) 更多分享

上篇: 分布式深度学习新进展:让“分布式”和“深度学习”真正深度融合
下篇: 阿里巴巴又开源了:蚂蚁金服分布式中间件之微服务SOFAMesh