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