1. 偏移量的概念
消费者在消费数据的时候需要将消费的记录存储到一个位置,防止因为消费者程序宕机而引起断点消费数据丢失问题,下一次可以按照相应的位置从kafka中找寻数据,这个消费位置记录称之为偏移量offset。
kafka0.9以前版本将偏移量信息记录到zookeeper中
新版本中偏移量信息记录在__consumer_offsets中,这个topic是系统生成的,不仅仅帮助管理偏移量信息还能分配consumer给哪个coordinator管理,是一个非常重要的topic
它的记录方式和我们知道的记录方式一样 groupid + topic + partition ==> offset
其中存储到__consumer_offsets中的数据格式也是按照k-v进行存储的,其中k是groupid + topic + partition
value值为offset的偏移量信息。
[hexuan@hadoop106 ~]$ kafka-topics.sh --bootstrap-server hadoop106:9092 --list
__consumer_offsets
topic_a
topic_b
topic_c
topic_e
topic_f
topic_g
可以看到系统生成的topic
因为之前我们消费过很多数据,现在可以查看一下记录在这个topic中的偏移量信息
其中存在一个kafka-consumer-groups.sh 命令
# 查看消费者组信息
kafka-consumer-groups.sh --bootstrap-server hadoop106:9092 --list
# 查询具体信息
kafka-consumer-groups.sh --bootstrap-server hadoop106:9092 --describe --group my-group
# 查看活跃信息
kafka-consumer-groups.sh --bootstrap-server hadoop106:9092 --describe --group my-group --members
查看消费者组信息:
[hexuan@hadoop106 ~]$ kafka-consumer-groups.sh --bootstrap-server hadoop106:9092 --list
hainiu_group
hainiu_group2
当前使用组信息:
[hexuan@hadoop106 ~]$ kafka-consumer-groups.sh --bootstrap-server hadoop106:9092 --describe --group hainiu_group
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
hainiu_group topic_c 0 0 0 0 consumer-hainiu_group-1-41a9ebd6-99a3-4d83-b1d7-88a2a9295054 /192.168.154.1 consumer-hainiu_group-1
hainiu_group topic_b 1 1438 1438 0 - - -
hainiu_group topic_b 0 1440 1440 0 - - -
hainiu_group topic_b 3 1417 1417 0 - - -
hainiu_group topic_b 4 1473 1473 0 - - -
hainiu_group topic_b 5 1440 1440 0 - - -
hainiu_group topic_b 2 1407 1407 0 - - -
hainiu_group topic_b 6 1391 1391 0 -
当前组消费偏移量信息:
GROUP:组名
TOPIC:topic信息
PARTITION:分区
CURRENT-OFFSET:当前消费偏移量
LOG-END-OFFSET:这个分区总共存在多少数据
LAG:还差多少没消费
CONSUMER-ID:随机消费者id
HOST:主机名
CLIENT-ID:客户端id
同时我们也可以查询__consumer_offset中的原生数据&#