可以减少min.insync.replicas吗?

时间:2020-07-28 14:42:04

标签: apache-kafka kafka-producer-api

我计划在生产环境中运行Kafka集群。在部署群集之前,我会尝试找到最佳配置以确保HA和数据的一致性。

我在官方文档中读到不可能减小分区复制因子,但是min.insync.replicas又如何呢?当我在测试环境中降低该值时,查看主题描述时看不到任何差异。将值从3更改为2后,我还有3 ISR。是因为它是一个最小值,还是因为未考虑配置更改?

1 个答案:

答案 0 :(得分:2)

是的,可以减少(或总体上可以更改)主题的min.insync.replicas配置。

但是,当您在寻找最佳配置以确保高可用性和数据一致性时,减小该值是违反直觉的。

(同步副本中的)ISR与设置min.insync.replicas之间有很大的不同。 kafka-topics --describe中显示的ISR仅告诉您主题数据的运行状况,以及所有副本是否都与分区领导者保持同步。

另一方面,min.insync.replicas与KafkaProducer一起使用该设置写入主题。在TopicConfigs上的官方Kafka文档中将其描述为:

当生产者将acks设置为“全部”(或“ -1”)时,min.insync.replicas指定必须确认写入的最小副本数,才能将写入视为成功

再次强调一下,如果您要寻求高可用性和一致性,最好在生产者中设置acks = all,同时保持min.insync.replicas高。

相关问题