消费管理
# 一、消费组管理
# 1、所有消费组查看
我们可以通过kafka-consumer-groups.sh
脚本查看或变更消费组的信息,其中list
这个指令类型的参数来罗列当前集群中所有的消费组名称:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --list
group.demo
# 2、单个消费组查看
kafka-consumer-groups.sh
脚本配合describe
这个指令类型来展示一个消费组的详细信息,同时还需要使用group
参数来指定特定消费组的名称:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group group.demo
TOPIC
:主题名称PARTITION
:分区CURRENT-OFFSET
:消费组最新提交的位移LOG-END-OFFSET
:高水位LAG
:消息滞后的数量(LOG-END-OFFSET
-CURRENT-OFFSET
)
# 3、消费组状态
消费组状态有如下几种:
Dead
Empty
PreparingRebalance
CompletingRebalance
Stable
正常情况下,一个具有消费者成员的消费组的状态为Stable
:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group group.demo --state
GROUP COORDINATOR (ID) ASSIGNMENT-STRATEGY STATE #MEMBERS
group.demo 192.168.31.240:9092 (0) range Stable 1
如果一个消费组下没有任何消费组,对应的状态为Empty
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group group.demo --state
Consumer group 'group.demo' has no active members.
GROUP COORDINATOR (ID) ASSIGNMENT-STRATEGY STATE #MEMBERS
group.demo 192.168.31.240:9092 (0) Empty 0
还可以通过members
参数罗列出消费组内的消费者成员信息:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group group.demo --members
GROUP CONSUMER-ID HOST CLIENT-ID #PARTITIONS
group.demo client.id.demo-04189014-ad44-4ea8-a0a5-54d5fa08d497 /172.17.0.1 client.id.demo 4
# 二、消费位移管理
kafka-consumer-groups.sh
脚本还提供了重置消费组内消费位移的功能,具体是通过 reset-offsets
这个指令类型的参数来实施的。
这个命令执行的前提是消费组内没有正在运行的消费组。
下面将group.demo
的所有分区消费位移都置为0:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group group.demo --all-topics --reset-offsets --to-earliest --execute
GROUP TOPIC PARTITION NEW-OFFSET
group.demo quickstart-events 2 0
group.demo quickstart-events 1 0
group.demo quickstart-events 0 0
group.demo quickstart-events 3 0
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --describe --group group.demo
Consumer group 'group.demo' has no active members.
GROUP TOPIC PARTITION CURRENT-OFFSET LOG-END-OFFSET LAG CONSUMER-ID HOST CLIENT-ID
group.demo quickstart-events 2 0 0 0 - - -
group.demo quickstart-events 1 0 2 2 - - -
group.demo quickstart-events 0 0 0 0 - - -
group.demo quickstart-events 3 0 1 1 - - -
其中--all-topics
是对所有的主题进行操作,我们可以通过topic
参数可以指定单个主题,下面将quickstart-events
主题下的分区3消费位移置为分区的末尾:
bin/kafka-consumer-groups.sh --bootstrap-server localhost:9092 --group group.demo --topic quickstart-events:3 --reset-offsets --to-latest --execute
GROUP TOPIC PARTITION NEW-OFFSET
group.demo quickstart-events 3 1
# 参考
上次更新: 2024/06/29, 15:13:44