Kafka22-消费者组协调器和启动流程

目录

消费者组协调器

1. 组协调器(Group Coordinator)

2. __consumer_offsets 主题

3. Rebalance 

消费者组的启动流程详解

1. 查找 Coordinator

2. JoinGroup(组成员加入消费者组)

3. SyncGroup(同步分区方案)

分区分配策略选择

1. RangeAssignor 分区分配策略

2. RoundRobinAssignor 分区分配策略

3. StickyAssignor 分区分配策略

4. CooperativeStickyAssignor 分区分配策略

选择 Group Coordinator 设置的策略


消费者组协调器

1. 组协调器(Group Coordinator)

组协调器是 Kafka 群组的中央处理器,负责协调组成员之间的 Rebalance 过程。它的主要功能包括:

  • Leader 选举:负责选举消费者组的领导者(Leader),领导者负责在 Rebalance 时协调分配和重新分配资源。

  • 处理 JoinGroupRequest:当消费者加入消费者组时,向组协调器发送 JoinGroupRequest 请求,协调器负责处理这些请求,并制定新的资源分配方案。

  • SyncGroupResponse 同步:在 Rebalance 过程中,协调器向消费者组成员发送 SyncGroupResponse,告知它们分配的分区情况。

  • 心跳管理:协调器维护与消费者的心跳信息,确保消费者组的健康状态,例如检测消费者是否在线或处于故障状态。

  • 位移管理:管理消费者的消费位移,并将位移信息保存到 Kafka 的内部主题(例如 __consumer_offsets)中,以便消费者可以在重新加入组时恢复其消费进度。

2. __consumer_offsets 主题

__consumer_offsets 主题用于存储消费者组的消费位移信息。每个消费者组都有一个或多个分区用于保存其消费位移。组协调器会定期更新这些位移信息,并确保它们可靠地存储在 Kafka 集群中。

3. Rebalance 

Rebalance 是指在消费者加入或离开消费者组时发生的事件。这时组协调器会根据分配策略重新分配分区或任务,以保持各成员的负载均衡。

消费者组的启动流程详解

1. 查找 Coordinator

当消费者启动时,它需要找到负责管理其消费者组的组协调器(Group Coordinator)。具体步骤如下:

  • 每个消费者会向任意一个 Broker 节点发送一个 findCoordinator 请求,请求中包含其 group.id,这是消费者组的唯一标识。
  • Broker 节点根据 group.id 计算出一个哈希值,并将其与 Kafka 内部主题 __consumer_offsets 的分区数取模,确定该消费者组对应的分区。
  • 消费者组的每个分区的 Leader 副本所在的 Broker 节点即是该消费者组的 Group Coordinator。
<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值