kafka命令
topic相关
创建一个名为TEST的topic,分为10部分,每部分副本数量为3 /app/kafka_2.13-2.5.0/bin/kafka-topics.sh --zookeeper 1.1.1.3:2181 --create --topic TEST --partitions 10 --replication-factor 3 查看所有topic /app/kafka_2.13-2.5.0/bin/kafka-topics.sh --zookeeper 1.1.1.3:2181 --list 查看指定topic的详细信息 /app/kafka_2.13-2.5.0/bin/kafka-topics.sh --zookeeper 1.1.1.3:2181 --describe --topic TEST
结果如下
第一行:topic名称,partition数量,replication(副本)数量
第二行到最后:每行分五列
第一列:topic名称
第二列:partition编号,从0到(partition数量-1)
第三列:partions的leader的broker ID,即该partition的leader在集群中的哪台kafka服务器,不一定为zookeeper的leader,负责该分区的所有读写
第四列:副本存放的broker ID,即副本存放在集群中的哪几台kafka服务器,不管它们是否是leader或存活
第五列:副本同步的broker ID,即副本会同步到集群中的哪几台kafka服务器,为第四列中存活且同步的的子集
增加partition数量
partition数量只能增加,不能减少
/app/kafka_2.13-2.5.0/bin/kafka-topics.sh --zookeeper 1.1.1.3:2181 --alter --topic TEST --partitions 20
删除topic
修改server.properties中的delete.topic.enable=true,否则执行删除命令不会生效
若delete.topic.enable不为ture,topic只是被标记删除
如果该topic还在有数据交换,那么查看topic list的时候,会显示该topic为标记删除。直到没有客户端使用该topic,才会真正的被删除
/app/kafka_2.13-2.5.0/bin/kafka-topics.sh --zookeeper 1.1.1.3:2181 --delete --topic TEST
produce相关
produce生产topic数据 topic可以是已存在的,也可以为不存在的,不存在的topic会新建,partition=1,副本数量也等于1 /app/kafka_2.13-2.5.0/bin/kafka-console-producer.sh --broker-list 1.1.1.3:9092 --topic TEST
consumer相关
consumer消费topic数据,已有数据不会被消费,必须是执行该命令后产生的数据才会被消费,即实时性数据 /app/kafka_2.13-2.5.0/bin/kafka-console-consumer.sh --bootstrap-server 1.1.1.3:9092 --topic TEST consumer从头开始消费topic数据 /app/kafka_2.13-2.5.0/bin/kafka-console-consumer.sh --bootstrap-server 1.1.1.3:9092 --topic TEST --from-beginning 查询consumer组 /app/kafka_2.13-2.5.0/bin/kafka-consumer-groups.sh --bootstrap-server 1.1.1.3:9092 --list 查看指定consumer组的详细信息 /app/kafka_2.13-2.5.0/bin/kafka-consumer-groups.sh --bootstrap-server 1.1.1.3:9092 --describe --group my-group