5 节点代理集群的 Kafka 复制因子

问题描述

我正在建立一个具有 3 个 Zookeper 和 5 个 Kafka broker 节点的 Confluent Kafka 集群(社区)。 要求是即使有 2 个代理节点宕机,我们也应该能够在实时环境中继续运行。

应该推荐什么 -复制因子, - 同步副本 对于有 50 个分区的主题

在大多数情况下,建议的复制因子是 3 。如果我们在提到的集群配置中将其增加到 5 会有什么影响

解决方法

将复制因子设置为 5 意味着所有分区都存在于集群中的所有代理上。如果两个 broker 宕机,则不再满足复制因子要求,您的主题将复制不足(应该发出警告)。

min.insync.replicas 然后应设置为 3(或更少),否则生成带有 acks = all 的消息将失败。生成将 acks 设置为 1、2 或 3 的消息也适用于更高的 min.insync.replicas 值。

另请注意,当两个节点关闭时,您无法创建复制因子为 5 的新主题(另请参阅 KIP-409)。