- 1. 前言
- 2. Broker默认端口号
- 3. 启动Kafka
- 4. 创建Topic
- 5. 列出所有Topic
- 6. 删除Topic
- 7. 查看Topic
- 8. 增加topic的partition数
- 9. 生产消息
- 10. 消费消息
- 11. 查看有哪些消费者Group
- 12. 查看新消费者详情
- 13. 查看Group详情
- 14. 删除Group
- 15. 设置consumer group的offset
- 16. RdKafka自带示例
- 17. 平衡leader
- 18. 自带压测工具
- 19. 查看topic指定分区offset的最大值或最小值
- 20. 查看__consumer_offsets
- 21. 获取指定consumer group的位移信息
- 22. 20) 查看kafka的zookeeper
- 23. 如何增加__consumer_offsets的副本数?
- 24. 问题
- 附1:进程监控工具process_monitor.sh
- 附2:批量操作工具
- 附2.1:批量执行命令工具:mooon_ssh
- 附2.2:批量上传文件工具:mooon_upload
- 附2.3:使用示例
- 附3:批量设置broker.id和listeners工具
- 附4:批量设置hostname工具
- 附5:Kafka监控工具kafka-manager
- 附6:kafka的安装
- 附7:__consumer_offsets
1. 前言
本文内容主要来自两个方面:一是网上的分享,二是自研的随手记。日记月累,收录kafka各种命令,会持续更新。
在0.9.0.0之后的Kafka,出现了几个新变动,一个是在Server端增加了GroupCoordinator这个角色,另一个较大的变动是将topic的offset 信息由之前存储在zookeeper上改为存储到一个特殊的topic(__consumer_offsets)中。
2. Broker默认端口号
9092,建议安装时,在zookeeper中指定kafka的根目录,比如“/kafka”,而不是直接使用“/”,这样多套kafka也可共享同一个zookeeper集群。
3. 启动Kafka
kafka-server-start.sh config/server.properties
后台常驻方式,请带上参数“-daemon”,如:
/usr/local/kafka/bin/kafka-server-start.sh -daemon /usr/local/kafka/config/server.properties
4. 创建Topic
参数--topic指定Topic名,--partitions指定分区数,--replication-factor指定备份数:
kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test
注意,如果配置文件server.properties指定了kafka在zookeeper上的目录,则参数也要指定,否则会报无可用的brokers,如:
kafka-topics.sh --create --zookeeper localhost:2181/kafka --replication-factor 1 --partitions 1 --topic test
5. 列出所有Topic
kafka-topics.sh --list --zookeeper localhost:2181
注意,如果配置文件server.properties指定了kafka在zookeeper上的目录,则参数也要指定,否则会报无可用的brokers,如:
kafka-topics.sh --list --zookeeper localhost:2181/kafka
输出示例:
__consumer_offsets my-replicated-topic test
6. 删除Topic
1) kafka-topics.sh --zookeeper localhost:2181 --topic test --delete
2) kafka-topics.sh --zookeeper localhost:2181/kafka --topic test --delete
3) kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic test
7. 查看Topic
kafka-topics.sh --describe --zookeeper localhost:2181 --topic test
注意,如果配置文件server.properties指定了kafka在zookeeper上的目录,则参数也要指定,否则会报无可用的brokers,如:
kafka-topics.sh --describe --zookeeper localhost:2181/kafka --topic test
输出示例:
Topic:test PartitionCount:3 ReplicationFactor:2 Configs: Topic: test Partition: 0 Leader: 140 Replicas: 140,214 Isr: 140,214 Topic: test Partition: 1 Leader: 214 Replicas: 214,215 Isr: 214,215 Topic: test Partition: 2 Leader: 215 Replicas: 215,138 Isr: 215,138
8. 增加topic的partition数
kafka-topics.sh --zookeeper localhost:2181 --alter --topic test --partitions 5
9. 生产消息
kafka-console-producer.sh --broker-list localhost:9092 --topic test
10. 消费消息
1) 从头开始
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --from-beginning
2) 从尾部开始
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest
3) 指定分区
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 1
4) 取指定个数
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --offset latest --partition 1 --max-messages 1
5) 新消费者(ver>=0.9)
kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic test --new-consumer --from-beginning --consumer.config config/consumer.properties