Kafka 节点和 zookeeper 将如何相互通信?
How Kafka Nodes and zookeeper will communicate with each other?
我找不到有关 Nodes 和 Zookeeper 之间通信的任何详细信息。认为
更多垃圾收集在 Kafka 节点中发生,结果会是什么?
- Zookeeper 会断开与相应节点的通信吗?
- 如果 Zookeeper 将断开相应节点的连接,结果会是什么?
Apache Kafka 使用 Zookeeper 作为 select 控制器,以维护集群成员资格并存储配置,包括集群中的主题列表。
为了保留在 Kafka 集群中,每个代理必须定期向 Zookeeper 发送保持活动状态。这是每个 Zookeeper 客户端默认执行的操作。如果 broker 没有每隔 zookeeper.session.timeout.ms
毫秒(默认为 6000)对 Zookeeper 进行心跳,Zookeeper 将假定 broker 已死。这将导致在该代理上拥有领导者的所有分区的领导者选举。如果这个经纪人恰好是控制器,你也会看到一个新的控制器被选举出来。
因此,如果垃圾收集暂停时间超过 6000 毫秒,您将看到 broker 与 Zookeeper 断开连接,并因此导致一堆领导者选举。由于垃圾收集压力很少导致一次长时间停顿,您可能会遇到我们所说的 "flapping" - 代理将不断断开连接并重新连接到 Zookeeper,大量领导选举和大量 ISR shrink/expand 事件。
反之亦然:如果您看到很多代理 "flapping",GC 日志是开始查找的好地方。
我找不到有关 Nodes 和 Zookeeper 之间通信的任何详细信息。认为 更多垃圾收集在 Kafka 节点中发生,结果会是什么?
- Zookeeper 会断开与相应节点的通信吗?
- 如果 Zookeeper 将断开相应节点的连接,结果会是什么?
Apache Kafka 使用 Zookeeper 作为 select 控制器,以维护集群成员资格并存储配置,包括集群中的主题列表。
为了保留在 Kafka 集群中,每个代理必须定期向 Zookeeper 发送保持活动状态。这是每个 Zookeeper 客户端默认执行的操作。如果 broker 没有每隔 zookeeper.session.timeout.ms
毫秒(默认为 6000)对 Zookeeper 进行心跳,Zookeeper 将假定 broker 已死。这将导致在该代理上拥有领导者的所有分区的领导者选举。如果这个经纪人恰好是控制器,你也会看到一个新的控制器被选举出来。
因此,如果垃圾收集暂停时间超过 6000 毫秒,您将看到 broker 与 Zookeeper 断开连接,并因此导致一堆领导者选举。由于垃圾收集压力很少导致一次长时间停顿,您可能会遇到我们所说的 "flapping" - 代理将不断断开连接并重新连接到 Zookeeper,大量领导选举和大量 ISR shrink/expand 事件。
反之亦然:如果您看到很多代理 "flapping",GC 日志是开始查找的好地方。