本文属于学习的第二阶段:[从运维实战的角度学习Kafka],本文重点介绍kafka-consumer-groups运维命令的使用,从运维、使用驱动对消费组的了解。
1、Kafka 消费组运维实战
接下来对一些要点做一个简单的说明与举例。
1.1 --members 显示消费组成员
在使用--describe选项查看一个消费组信息时会详细显示各个分区的消费情况,而加上--members类似一个分组,以客户端为维度的汇总信息,如下图所示:
1.2 --state 显示消费组状态
该选项主要用于显示消费组的状态,使用示例如下图所示:
其列说明如下:
- COORDINATOR (ID)
该消费组的控制协调器,例如协调分区重平衡等操作,不同的消费组的协调器所在的Broker不同。 - ASSIGNMENT-STRATEGY
分区负载算法,目前Kafka支持Rrange与RoundRobin两种分配上算法,默认为Range,其含义如下图所示: - State
消费者状态,主要包括Dead, Stable(稳定状态,可消费消息), CompletingRebalance(正在重平衡), PreparingRebalance(准备重平衡), empty(所有消费不在线) - MEMBERS
成员个数。
1.2 --reset-offsets 重置消费位点
重置消费位点是kafka-consumer-groups的重点功能,我们对常用功能进行演示,只有操作,才能记忆深刻。
Kafka的重置位点需要先停掉所有的消费者。
执行真正的位点重置需要加上 --execute选项,在真正执行之前,可以用--dry-run模拟执行。
2、总结
在Kafka中,消费组是自动创建的,并且kafka中的消费组并没有提供类似RocketMQ的广播消费模式,也没Topic那么多的运维属性,其实也可以理解,topic是负责具体的数据存储,而消费组只是拉取数据进行处理。