apache-kafka - Kafka Nodes 和 zookeeper 将如何相互通信?

标签 apache-kafka apache-zookeeper

我找不到有关 Nodes 和 Zookeeper 之间通信的任何详细信息。认为
更多 垃圾回收发生在 Kafka 节点中,会产生什么结果?

  • Zookeeper 会断开与相应节点的通信吗?
  • 如果 Zookeeper 断开相应节点的连接会产生什么结果?
  • 最佳答案

    Apache Kafka 使用 Zookeeper 来选择 Controller 、维护集群成员资格并存储配置,包括集群中的主题列表。

    为了保持 Kafka 集群的一部分,每个代理必须定期向 Zookeeper 发送 keep-alive。这是每个 Zookeeper 客户端默认执行的操作。如果broker没有每隔zookeeper.session.timeout.ms心跳Zookeeper毫秒(默认为 6000),Zookeeper 将假定代理已死。这将导致在该代理上具有领导者的所有分区的领导者选举。如果这个经纪人碰巧是 Controller ,你还会看到一个新的 Controller 被选举出来。

    因此,如果垃圾收集暂停时间超过 6000 毫秒,您将看到代理与 Zookeeper 断开连接,结果是一堆领导者选举。由于垃圾收集压力很少会导致长时间的停顿,您可能会遇到我们所说的“颤动”——broker 会不断断开连接并重新连接到 Zookeeper,大量的领导者选举和大量的 ISR 收缩/扩展事件。

    反之亦然:如果您看到很多代理“摇摆不定”,那么 GC 日志是开始寻找的好地方。

    关于apache-kafka - Kafka Nodes 和 zookeeper 将如何相互通信?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54013250/

    相关文章:

    java - 如何使用 Avro 和 Flink 解码 Kafka 消息

    apache-kafka - Kafka Mirromaker2 生产者幂等性和重复项

    apache - 询问 apache zookeeper

    docker - kafka zookeeper docker没有连接

    filter - 我可以在 kafka 流应用程序的 peek 或过滤器或分支中执行一些状态操作吗?

    apache-kafka - Kafka Ktable 还流式传输重复更新

    apache-kafka - 为什么在实时处理中使用apache kafka

    具有偏移量管理的 Python Kafka 消费者

    apache-zookeeper - Kafka 消费者启动错误 : Failed to add leader for partitions [calls, 0] - NotLeaderForPartitionException

    javascript - Angular 2 : reference error can't find variable require