- 心跳检测:
- Broker 定期向 Controller 发送心跳。
- Controller 维护一个心跳计时器,记录每个 Broker 的最后一次心跳时间。
- 如果某个 Broker 的心跳超时(超过
broker.session.timeout.ms),Controller 认为该 Broker 失效。
- Zookeeper 监听:
- Controller 监听 Zookeeper 中 Broker 节点的变化。
- 如果某个 Broker 节点被删除,Controller 立即检测到该 Broker 失效。
- Broker 状态更新:
- 当 Controller 检测到 Broker 失效时,会更新集群的 Broker 状态。
- Controller 会触发 Leader 选举和再平衡操作,确保集群的正常运行。