← 返回首页
Consumer消费Offset查询
发表时间:2023-10-31 15:21:50
Consumer消费Offset查询

Consumer消费Offset查询。

1.Consumer消费Offset查询

kafka0.9版本以前,消费者的offset信息保存在zookeeper中。从kafka0.9开始,使用了新的消费API,消费者的信息会保存在kafka里面的__consumer_offsets这个topic中,因为频繁操作zookeeper性能不高,所以kafka在自己的topic中负责维护消费者的offset信息。

使用kafka-consumer-groups.sh这个脚本可以查看当前所有的consumer group。

[root@master kafka]# bin/kafka-consumer-groups.sh --list  --bootstrap-server master:9092
consumer_group-2
consumer_group-1

具体查看某一个consumer group的信息。 - GROUP:当前消费者组,通过group.id指定的值 - TOPIC:当前消费的topic - PARTITION:消费的分区 - CURRENT-OFFSET:消费者消费到这个分区的offset - LOG-END-OFFSET:当前分区中数据的最大offset,一定大于等于CURRENT-OFFSET - LAG:当前分区未消费数据量

[root@master kafka]# bin/kafka-consumer-groups.sh --describe  --bootstrap-server master:9092 --group consumer_group-1

Consumer group 'consumer_group-1' has no active members.

GROUP            TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
consumer_group-1 mytopic1        3          0               0               0               -               -               -
consumer_group-1 mytopic1        2          0               0               0               -               -               -
consumer_group-1 mytopic1        1          2               2               0               -               -               -
consumer_group-1 mytopic1        0          1               1               0               -               -               -
consumer_group-1 mytopic1        4          3               3               0               -               -               -

此时再执行一次生产者代码,生产一条数据,重新查看一下这个消费者的offset情况。

[root@master kafka]# bin/kafka-consumer-groups.sh --describe  --bootstrap-server master:9092 --group consumer_group-1

Consumer group 'consumer_group-1' has no active members.

GROUP            TOPIC           PARTITION  CURRENT-OFFSET  LOG-END-OFFSET  LAG             CONSUMER-ID     HOST            CLIENT-ID
consumer_group-1 mytopic1        3          0               1               1               -               -               -
consumer_group-1 mytopic1        2          0               0               0               -               -               -
consumer_group-1 mytopic1        1          2               2               0               -               -               -
consumer_group-1 mytopic1        0          1               1               0               -               -               -
consumer_group-1 mytopic1        4          3               3               0               -               -               -

我们发现PARTITION 为3的分区里面,有一条未消费的数据。