面试题答案
一键面试- 消费者感知Broker宕机
- 消费者通过心跳机制与Broker保持连接。当Broker宕机时,心跳检测会失败,消费者会感知到Broker失联。
- 负载均衡触发
- 消费者端的负载均衡逻辑被触发。由于采用平均分配策略,消费者会重新计算分配方案。
- 重新分配Topic队列
- 消费者获取当前存活的Broker列表以及它们所管理的Topic队列信息。
- 以消费者数量
C
和剩余Broker管理的Topic队列总数Q
为基础。计算每个消费者大致应分配的队列数q = Q / C
(向下取整),剩余队列r = Q % C
。 - 从第一个消费者开始,依次分配
q
个队列,然后将剩余的r
个队列依次分配给前r
个消费者。
- 关键机制
- 心跳机制:用于消费者与Broker间的连接检测,确保及时发现Broker宕机。
- 负载均衡算法:平均分配策略保证在Broker宕机后,队列能相对均匀地重新分配到各消费者,维持消费的均衡性。
- 元数据管理:消费者能获取最新的Broker和Topic队列元数据,以便准确重新分配。