kafka主题分区的最大复制因子是多少

时间:2019-11-11 18:05:14

标签: apache-kafka replication partitioning kafka-topic

我有3个经纪人和几个主题,每个主题有5个分区,拥有kafka集群。现在,我想为分区设置复制因子。

我可以为kafka主题分区设置的最大复制因子是什么?

2 个答案:

答案 0 :(得分:2)

代理只能为一个分区托管一个副本。

因此,如果您的集群有3个代理,则最大复制因子为3。

虽然理论上可以设置一个具有很大复制因子的主题,但实际上,将其设置在4以上几乎没有任何好处。副本用于实现高可用性和持久性,并且基本上确定了多少代理可以在丢失之前脱机任何数据。如果您有3个副本,则所有3个代理都不太可能同时崩溃/失败。

答案 1 :(得分:1)

  

复制因子确定每个分区具有的复制数量,这使Kafka可以自动故障转移到这些副本   当群集中的服务器发生故障,以便消息仍然可用时   如果失败

分区副本分布在各个代理之间,一个代理应保留一个副本,这意味着我们的副本不能超过代理数量

最大复制因子<=经纪人数量。

这也意味着确定 min.insync.replicas ,这意味着它将始终小于或等于复制因子

min.insync.replicas表示<=复制因子

  

min.insync.replicas 是您愿意随时在线以继续运行的数据的最小副本数   并接受新的传入消息。

如上所述,

理想的复制因子3 很好,但是根据用例,您可以将复制因子调整为小于2(意味着高风险),而同时大于3则可以提供更好的可用性,但更多开销和所需的更大尺寸。

在确定复制因子时,还应考虑以下几点:

A):代理大小复制因子直接影响整个代理磁盘大小

因此,高复制因子需要更大的磁盘大小

B)大量分区复制:在大量分区复制的情况下,会增加额外的延迟。