【发布时间】:2019-05-31 13:54:44
【问题描述】:
有 3 个节点的 Kafka(版本 2.2.0)集群。一个节点人为地变得不可用(网络断开)。然后我们有以下行为:
我们将记录发送给具有给定主题分区的生产者(发送到特定分区,比如 #0)。
我们从制作者那里收到记录元数据,确认它已被确认。
之后,我们立即轮询分配给同一主题分区的消费者和从记录元数据中获取的偏移量。轮询超时设置为 30 秒。不返回数据(返回空集)。
这种情况不时发生不一致(在描述的情况下,一个 Kafka 节点发生故障)。
基本上我的问题是:是否应该立即为消费者提供数据?如果不是,那么合理的超时时间是多少?
UPD:一些配置细节:
- 主题的分区数:1
- 默认复制因子:3
- 同步复制因子:2
- 生产者确认:全部
【问题讨论】:
-
视情况而定。你能分享你的配置吗?具体来说:主题的分区数(您要发送到特定分区吗?)、复制因子、生产者上的“acks”设置、“isolation.level”或任何非默认值。还有kafka版本。
-
@RobertBräutigam 我已经用要求的详细信息更新了我的问题。我没有提到acks和隔离级别,因为它们是默认的并且没有改变。
标签: apache-kafka