欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

kafka zk常用命令

程序员文章站 2022-04-24 16:21:16
1 创建topic: kafka-topics.sh --create --zookeeper 3.3.3.3:2181 --replication-factor 1 --partitions 3 --topic test_one replication-factor 副本的个数 (因为创建的副本都 ......

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]