apache-kafka - Apache Kafka 中的分区领导者是什么?

标签 apache-kafka broker kafka-topic leader kafka-partition

kafka 领导者是自己分区还是经纪人?
我最初的理解是,它们是充当读/写代理的分区,然后将它们的值(value)交给 ISR。

但是最近我听到他们提到他们好像发生在“经纪人”级别,因此我很困惑。

我知道还有其他帖子旨在回答这个问题,但那里的答案没有帮助。

最佳答案

这里的一些答案并不完全正确,所以我想说得更清楚。

每个分区恰好有一个分区领导者来处理该分区的所有读/写请求。
如果复制因子大于 1,则附加分区复制将充当分区跟随者。
Kafka 保证每个分区副本都驻留在不同的代理上 (无论是leader还是follower),所以最大复制因子就是broker数。

每个分区跟随者都从分区领导者那里读取消息(就像一种消费者)并且不为该分区的任何消费者提供服务 (只有分区领导者提供读/写)。
如果分区跟随器不断从分区领导者读取数据而不会滞后并且不会失去与 ZooKeeper 的连接(最大滞后默认为 10 秒,ZooKeeper 超时为 6,它们都可配置),则它被认为是同步的。
如果分区跟随器滞后,则认为不同步。
当分区领导者因任何原因关闭时(实际上它所在的代理关闭),它的同步分区追随者之一将成为新的领导者。

replication section in Kafka Documentation详细解释了这一点。
Confluent 也写了一篇不错的blog关于这个话题。

关于apache-kafka - Apache Kafka 中的分区领导者是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60835817/

相关文章:

java - 了解Kafka消息字节大小

visual-c++ - 客户端/服务器通信中的中间件

apache-kafka - Kafka regex-topics/听多个主题的实际限制是什么

apache-kafka - 从 Kafka 的主题中删除一条消息

java - Spring Boot Kafka 应用程序未接收消息

apache-kafka - 有没有办法删除主题中的所有数据或在每次运行之前删除主题?

Java Kafka adminClient 主题配置。配置值被覆盖

java - 如何通过以编程方式设置用户名和密码来连接到 ActiveMQ 服务器?

apache-kafka - 将 Kafka 拆分为单独的主题或单个主题/多个分区