apache-kafka - 我可以为 replication.factor 和 min.insync.replicas 设置相同的编号吗?
问题描述
我正在尝试了解代理配置 - min.insync.replicas,这是我的问题。
问题 1:如果我设置我的 replication.factor = 2 和 min.insync.replicas =2,我的消息会有多少份?
问题 2:我可以设置 replication.factor = 2 和 min.insync.replicas =2 吗?
解决方案
问题 1:如果我设置我的
replication.factor = 2
andmin.insync.replicas = 2
,我的信息会有多少份?
主题中数据的副本(副本)取决于配置replication.factor
。如果将其设置为 2,您将拥有 2 个副本。
问题2:我可以设置
replication.factor = 2
和min.insync.replicas = 2
吗?
是的,您可以将这两个值都设置为 2。min.insync.replicas
应该小于或等于 replication.factor。但是,在min.insync.replicas
为主题生成数据时,配置起着更重要的作用。当生产者将ack设置为“all”(或“-1”)时,此配置指定必须确认写入才能被视为成功的最小副本数。如果无法满足此最小值,则生产者将引发异常(NotEnoughReplicas
或NotEnoughReplicasAfterAppend
)。
这些配置的完整详细信息在 Kafka 文档的主题级别配置部分中给出。