kafka zk常用命令
1 创建topic:
kafka-topics.sh --create --zookeeper 3.3.3.3:2181 --replication-factor 1 --partitions 3 --topic test_one
replication-factor 副本的个数 (因为创建的副本都是存储在其他broker的,所以这里配置的个数不能大于集群中的broker个数)
partitions 分区个数
执行后的结构:
drwxr-xr-x 2 root root 4096 8月 11 17:07 test_one-0/ 第一个分区
drwxr-xr-x 2 root root 4096 8月 11 17:07 test_one-1/ 第二个分区
drwxr-xr-x 2 root root 4096 8月 11 17:07 test_one-2/ 第三个分区
2 生产消息(手动在命令行执行):kafka-console-producer.sh --broker-list 3.3.3.3:9092 --topic test_one
由于有三个分区,所以我们未手动指定消息的分区规则的情况下,消息会均匀的分发到三个分区,我们可以通过server.properties中log.dirs所配置目录下的 replication-offset-checkpoint文件查看各个分区的消息个数,如下:
root@131:aaaa# cat replication-offset-checkpoint
0
3
test_one 2 24
test_one 0 24
test_one 1 23
test_one为topicname,后面的0 1 2是分区号,后面的24 24 23就是当前这个分区的消息个数
3 查看topic的详细信息: kafka-topics.sh -describe -zookeeper 3.3.3.3:2181 -topic test_one
# kafka-topics.sh -describe -zookeeper .3.3.3.3:2181 -topic test_one
Topic:test_one PartitionCount:3 ReplicationFactor:1 Configs:
Topic: test_one Partition: 0 Leader: 0 Replicas: 0 Isr: 0
Topic: test_one Partition: 1 Leader: 0 Replicas: 0 Isr: 0
Topic: test_one Partition: 2 Leader: 0 Replicas: 0 Isr: 0
这个结果显示了分区的个数,哪个是主分区,那些是有效节点:
Partition:分区编号;
Leader:当前分区编号的主分区
Replicas:当前分区的所有节点(主节点+备节点)
Isr:当前分区的所有节点中的有效节点
判断是否有效节点的条件:1,与主节点保持心跳的节点;2,未同步的消息数量小于我们设置的阈值;3,当前节节点卡住的时间小于我们配置的阈值
注:
这里需要注意的是,kafka里所说的副本/leader/主节点/从节点等都是以分区为单位的,而不是topic;
4 登陆zk客户端查看topic等信息
4.1 登陆客户端:zkCli.sh -server 192.168.138.131:2181
4.2 查看根节点信息:[zk: 192.168.138.131:2181(CONNECTED) 0] ls /
[zk: 3.3.3.3:2181(CONNECTED) 0] ls /
[controller_epoch, controller, brokers, zookeeper, admin, isr_change_notification, consumers, config]
可以使用ls + 路径查看需要的信息,如:ls /brokers/topics/test_one/partitions
[zk: 3.3.3.3:2181(CONNECTED) 9] ls /brokers/topics/test_one/partitions
[0, 1, 2]
上一篇: [日常] Go语言圣经-基于select的多路复用习题
下一篇: 在最后善良爆笑字母