apache-kafka - 是否可以减少 min.insync.replicas?
问题描述
我计划在生产环境中运行 Kafka 集群。在部署集群之前,我会尝试寻找最佳的配置来保证 HA 和数据的一致性。
我在官方文档中读到,不可能减少分区复制因子,但是min.insync.replicas
呢?当我在测试环境中降低值时,我在查看主题描述时看不到任何差异。将值从 3 更改为 2 后,我仍然有 3 个 ISR。是因为它是最小值还是因为没有考虑到配置更改?
解决方案
是的,可以减少(或一般更改)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
高。
推荐阅读
- ios - 无法正确重新加载tableview swift ios
- asp.net-core-mvc - 在 ASP.NET Core 中,是否可以通过将身份验证转发到另一个方案来在一个方案中抢先创建新用户?
- r - 回复:ggplot2,geom_line - x 数据时的线图问题
- java - 用于增强耐用性的 Couchbase 客户端配置
- java - 逆向工程随机数生成器
- sql - 递归查询多个表
- dart - 通过 Dart 连接数据库时出现异常
- alsa - ALSA 排序器队列不运行
- c++ - 在 leveldb 的 C++ 示例中声明迭代器时出现分段错误
- arrays - 识别选择排序与插入排序