kafka 检查 consumer 位置

版本 2.11-1.0.0
有时观察到消费者的位置是有用的。我们有一个工具,可以显示 consumer 群体中所有 consumer 的位置,以及他们所在日志的结尾。要在名为my-group的 consumer 组上运行此工具,消费一个名为my-topic的 topic 将如下所示:

1.查看所有消费者组

bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list

2.查看某个消费者的进度

1).bootstrap形式

> bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group my-group

注意:这将仅显示使用Java consumer API(基于非ZooKeeper的 consumer)的 consumer 的信息
有3个分区,有3个消费线程,同为my-group组

TOPIC                          PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG        CONSUMER-ID                                       HOST                           CLIENT-ID
my-topic                       0          2               4               2          consumer-1-029af89c-873c-4751-a720-cefd41a669d6   /127.0.0.1                     consumer-1
my-topic                       1          2               3               1          consumer-1-029af89c-873c-4751-a720-cefd41a669d6   /127.0.0.1                     consumer-1
my-topic                       2          2               3               1          consumer-2-42c1abd4-e3b2-425d-a8bb-e1ea49b29bb2   /127.0.0.1                     consumer-2

疑问:CONSUMER-ID是怎么来的?有2个consumer-1开头一个consumer-2开头的

如果消费者线程数大于分区数,有消费者线程空置
有1个分区,2个消费者

TOPIC                          PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG        CONSUMER-ID                                       HOST                           CLIENT-ID
test                           0          1               1               0          consumer-1-a59a7d10-a8d0-4140-8807-ca374213f316   /127.0.0.1                     consumer-1
-                              -          -               -               -          consumer-1-fb81ff35-6854-437b-bc1f-51429642c241   /127.0.0.1

2).ZooKeeper形式

这个工具也适用于基于ZooKeeper的 consumer:

> bin/kafka-consumer-groups.sh --zookeeper localhost:2181 --describe --group my-group

注意:这只会显示关于使用ZooKeeper的 consumer 的信息(不是那些使用Java consumer API的消费者)

TOPIC                          PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG        CONSUMER-ID
my-topic                       0          2               4               2          my-group_consumer-1
my-topic                       1          2               3               1          my-group_consumer-1
my-topic                       2          2               3               1          my-group_consumer-2

3.重置某个消费者进度

1)重置至earliest
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group DemoConsumer --topic topic1 --reset-offsets --to-earliest --execute

–execute 必须带,否则虽然打印的信息一致,但是实际没有替换offset

[root@EMS3 kafka_2.11-1.0.0]# bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group DemoConsumer --topic topic1 --reset-offsets --to-earliest  --execute
Note: This will not show information about old Zookeeper-based consumers.

TOPIC                          PARTITION  NEW-OFFSET
topic1                         0          0

假设某消费进度如下,已经消费2条消息,并且是队列尾

CURRENT-OFFSETLOG-END-OFFSETLAG
220

重置后结果:尚未消费,跳至消息队列头

CURRENT-OFFSETLOG-END-OFFSETLAG
022

2)重置至latest
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group DemoConsumer --topic topic1 --reset-offsets --to-latest --execute

[root@EMS3 kafka_2.11-1.0.0]# bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group DemoConsumer --topic topic1 --reset-offsets --to-latest  --execute
Note: This will not show information about old Zookeeper-based consumers.

TOPIC                          PARTITION  NEW-OFFSET
topic1                         0          2

假设某消费进度如下,尚未消费,并且消息队列已经有2个数据

CURRENT-OFFSETLOG-END-OFFSETLAG
022

重置后结果:消费2个数据,并且是消息队列尾

CURRENT-OFFSETLOG-END-OFFSETLAG
220

3)跳至指定的offset
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group DemoConsumer --topic topic1 --reset-offsets --to-offset 0 --execute

细节就不贴出来了,就是跳至指定位置

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值