【发布时间】:2017-06-07 04:29:39
【问题描述】:
我们偶尔会遇到副本领导者和其他 ISR 节点之间的高延迟,这会导致消费者收到以下错误:
org.apache.kafka.clients.consumer.RetriableCommitFailedException: Commit offsets failed with retriable exception. You should retry committing offsets.
Caused by: org.apache.kafka.common.errors.TimeoutException: The request timed out.
我可以增加offsets.commit.timeout.ms,但我不想这样做,因为它可能会导致额外的副作用。
但从更广泛的角度来看,我不希望代理等待同步所有其他副本上的提交偏移量,而是在本地提交并异步更新其余部分。
仔细检查代理配置,我发现 offsets.commit.required.acks 看起来就是这样配置的,但文档也隐晦地指出:the default (-1) should not be overridden。
为什么?我什至尝试过查看代理源代码,但几乎没有找到其他信息。
知道为什么不推荐这样做吗?有没有不同的方法可以达到相同的结果?
【问题讨论】:
-
如果这个问题是暂时的,你可能会增加'request.timeout.ms'。
-
我们在 Kafka 2.1.1 上遇到了完全相同的问题...解决此问题是否成功?
标签: apache-kafka kafka-consumer-api