查看当前kafka集群中的topic情况
命令:
bin/kafka-topics.sh --list --zookeeper 127.0.0.1:2181
列出该zookeeper中记录在案的topic列表
创建Topic
命令:
bin/kafka-topics.sh --create --topic test0 --zookeeper 127.0.0.1:2181 --config max.message.bytes=12800000
--config flush.messages=1 --partitions 5 --replication-factor 1
说明:
--topic后面的test0是topic的名称
--zookeeper应该和server.properties文件中的zookeeper.connect一样
--config指定当前topic上有效的参数值
--partitions指定topic的partition数量,如果不指定该数量,默认是server.properties文件中的num.partitions配置值
--replication-factor指定每个partition的副本个数,默认1个
查看topic
命令:
/usr/local/kafka/bin/kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
删除kafka的topic
命令:
bin/kafka-topics.sh --delete --zookeeper 127.0.0.1:2181 --topic test0
如果server.properties中没有把delete.topic.enable设为true,那么此时的删除并不是真正的删除,而是把topic标记为:marked for deletion
查看topic消费到的offset
命令:
bin/kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 127.0.0.1:9092 --topic test0 --time -1
time为-1时表示最大值,为-2时表示最小值。
运行结果:
test0:0:177496
test0:1:61414
修改topic的partition数量(只能增加不能减少)
命令:
bin/kafka-topics.sh --alter --zookeeper 127.0.0.1:2183 --partitions 10 --topic test0
启动kafka
命令:
bin/kafka-server-start.sh -daemon config/server.properties
生产消息
命令:
/usr/local/kafka/bin/kafka-console-producer.sh --broker-list localhost:9092 --topic test
消费消息
从头开始
命令:
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
从尾部开始
从尾部开始取数据,必需要指定分区:
命令:
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0
指定消费数目
命令:
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 0 --max-messages 1
消费者 Group
指定 Group
命令:
/usr/local/kafka/bin/kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test -group test_group --from-beginning
消费者 Group 列表
命令:
/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
查看group详情
命令:
/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --describe
输出:
Consumer group 'test_group' has no active members.
TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
test 0 5 5 0 - - -
# CURRENT-OFFSET: 当前消费者群组最近提交的 offset,也就是消费者分区里读取的当前位置
# LOG-END-OFFSET: 当前最高水位偏移量,也就是最近一个读取消息的偏移量,同时也是最近一个提交到集群的偏移量
# LAG:消费者的 CURRENT-OFFSET 与 broker 的 LOG-END-OFFSET 之间的差距
删除 Group 中 Topic
命令:
/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --topic test --delete
删除Group
命令:
/usr/local/kafka/bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group test_group --delete