首页 > 解决方案 > 是否可以减少 min.insync.replicas?

问题描述

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

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

标签: apache-kafkakafka-producer-api

解决方案


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

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

ISR(同步副本)和设置之间存在很大差异min.insync.replicas。刚才显示的 ISRkafka-topics --describe告诉您主题中的数据有多健康,以及所有副本是否跟上分区领导者的步伐。

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

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

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


推荐阅读