文章记录一些常用基本命令和参数,更多参数请使用–help进行查阅或者查阅官方文档
1 主题管理
1.1 创建主题
kafka-topics.sh --create --bootstrap-server 172.18.187.15:9092 --replication-factor 2 --partitions 3 --topic kafka-action
控制台输出结果如下
Created topic kafka-action.
- bootstrap-server:kafka服务器的地址列表
- partitions:主题分区数
- replication-factor 每个分区的副本数
查看zookeeper的主题输出如下
[zk: localhost:2181(CONNECTED) 2] ls /brokers/topics
[kafka-action]
1.2 删除主题
kafka-topics.sh --delete --bootstrap-server 172.18.187.15:9092 --topic kafka-action
1.3 查看主题
1.3.1 查看所有主题
kafka-topics.sh --list --bootstrap-server 172.18.187.15:9092
// 输出如下
kafka-action
test
1.3.2 查看主题详细信息
kafka-topics.sh --describe --bootstrap-server 172.18.187.15:9092
// 输出如下
Topic: test PartitionCount: 3 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: test Partition: 0 Leader: 1 Replicas: 1,0 Isr: 1,0
Topic: test Partition: 1 Leader: 0 Replicas: 0,2 Isr: 0,2
Topic: test Partition: 2 Leader: 2 Replicas: 2,1 Isr: 2,1
Topic: kafka-action PartitionCount: 3 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: kafka-action Partition: 0 Leader: 2 Replicas: 2,0 Isr: 2,0
Topic: kafka-action Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2
Topic: kafka-action Partition: 2 Leader: 0 Replicas: 0,1 Isr: 0,1
kafka-topics.sh --describe --bootstrap-server 172.18.187.15:9092 --topic kafka-action
Topic: kafka-action PartitionCount: 3 ReplicationFactor: 2 Configs: segment.bytes=1073741824
Topic: kafka-action Partition: 0 Leader: 2 Replicas: 2,0 Isr: 2,0
Topic: kafka-action Partition: 1 Leader: 1 Replicas: 1,2 Isr: 1,2
Topic: kafka-action Partition: 2 Leader: 0 Replicas: 0,1 Isr: 0,1
每组主题信息中第一行分别展示了主题名、主题分区总数、该主题副本总数、 建主题时通过 config 参数 设置 配置
从第二行开始按主题分区编号排序,展示每个分区的 Leader副本节点、副本列表 AR、SR 列表信息。
1.3.3 查看正在同步主题
kafka-topics.sh --describe --bootstrap-server 172.18.187.15:9092 --under-replicated-partitions
1.3.4 查看没有Leader的分区
kafka-topics.sh --describe --bootstrap-server 172.18.187.15:9092 --unavailable-partitions
1.3.5 查看主题覆盖的配置
kafka-topics.sh --describe --bootstrap-server 172.18.187.15:9092 --topics-with-overrides
1.3.6 查看主题分区偏移量
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list localhost:9092 --topic kafkaTest2
1.4 修改主题
1.4.1 查看主题当前配置
kafka-topics.sh --describe --bootstrap-server 172.18.187.15:9092 --topics-with-overrides --topic kafka-action
// 输出如下
Topic: kafka-action PartitionCount: 3 ReplicationFactor: 2 Configs: segment.bytes=1073741824
1.4.2 修改主题配置,如max.message.bytes
kafka-configs.sh --alter --bootstrap-server 172.18.187.15:9092 --add-config max.message.bytes=204800,segment.bytes=209715200 --topic kafka-action
1.4.3 删除主题配置
kafka-configs.sh --alter --bootstrap-server 172.18.187.15:9092 --delete-config segment.bytes --topic kafka-action
// 输出如下
Completed updating config for topic kafka-action
2 生产者基本操作
kafka-console-producer.sh --broker-list 172.18.187.15:9092 --property parse.key=true --property key.separator=' ' --topic kafka-action
配合消费者来看一下效果
// 生产者
kafka-console-producer.sh --broker-list 172.18.187.15:9092 --property parse.key=true --property key.separator=' ' --topic kafka-action
>key value
>key1 value1
>
// 消费者
kafka-console-consumer.sh --bootstrap-server 172.18.187.15:9092 --consumer-property group.id=-consumer-test --topic kafka-action
value
value1
bootstrap-server:kafka集群地址列表
parse.key:指定是否解析key
key.separator:key和value的分隔符
若开启了自动建主题配置项 auto.create topics.enable true 当生产者向一个还不存在的主题发送消息时 Kafka 会自动创建该主题。
3 消费者基本操作
3.1 消费消息
kafka-console-consumer.sh --bootstrap-server 172.18.187.15:9092 new-consumer --group new-consumer --consumer-property client.id=new-consumer-cl --topic kafka-action --from-beginning
例子与生产者一例类似
bootstrap-server:kafka集群地址列表。
from-beginning: 参数设置从消息起始位置开始消费。默认是从最新消息位置 latest开始消费。
group: 指定消费组id,也可以通过consumer-propety的group id进行配置。
consumer-property 参数后面以[k=v,k=v]键值对的形式指定消费者级别的配置。
- group.id:消费组id,不指定默认在test-consumer-group下。
- client.id:客户端id,如果客户端没有指定消费者的id,Kafka 会自动为该消费者生成一个全局唯一id , 格式为$ {groupld }-$ {hostN ame }-$ {times tamp}-$ {UUID 字符}。
partition: 指定消费的分区(不能和group.id同时使用)。
offset:指定从哪个偏移量开始消费。
3.2 查看各分区偏移量信息
kafka-run-class.sh kafka.tools.GetOffsetShell --broker-list 172.18.187.15:9092 --topic kafka-action -time -1
输出如下
kafka-action:0:1
kafka-action:1:0
kafka-action:2:1
3.3 多主题消费
kafka-console-consumer.sh --bootstrap-server 172.18.187.15:9092 multi-consumer --consumer-property group.id=consumer-multi --consumer-property client.id=new-consumer-multi --whitelist "kafka-action|test"
生产者1
生产者2
消费者
3.4 查看所有消费者组
kafka-consumer-groups.sh --list --bootstrap-server 172.18.187.15:9092
consumer-test
new-consumer
consumer-test-1
consumer-multi
consumer-offset-test
3.5 查看某个消费者组的消费详情
kafka-consumer-groups.sh --describe --group new-consumer --bootstrap-server 172.18.187.15:9092
// 输出如下
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
new-consumer kafka-action 0 1 1 0 new-consumer-cl-85697219-b90b-4231-8a7d-cddb2fc8ba84 /172.18.187.14 new-consumer-cl
new-consumer kafka-action 1 0 0 0 new-consumer-cl-85697219-b90b-4231-8a7d-cddb2fc8ba84 /172.18.187.14 new-consumer-cl
new-consumer kafka-action 2 2 2 0 new-consumer-cl-85697219-b90b-4231-8a7d-cddb2fc8ba84 /172.18.187.14 new-consumer-cl
GROUP:消费组
TOPIC:主题
PARTITION:分区
CURRENT-OFFSET: 当前小芬偏移量
LOG-END-OFFST: 记录的偏移量
CONSUMER-ID:消费者ID
HOST:ip地址
CLIENT-ID:客户端ID