【发布时间】:2018-03-01 20:19:56
【问题描述】:
我想微调 Producer 的 KafkaTemplate 选项,以尽可能优化地处理各种故障转移和恢复场景。
我们的KafkaProducerMessageHandler 在sync 模式下运行(即等待发送操作结果 - 请参阅: acks 下面)。 注意:这是在当前版本的 Kafka 中启用 ErrorChannel 报告所必需的。
以下是我选择的选项:
-
acks = 1(我们正在执行来自 Kafka 的基本确认 经纪人领导) -
retries = 10 -
max.in.flight.requests.per.connection = 1(如果达到错误状态,这将使消息保持有序) -
linger.ms = 1(不确定这个或是否相关?) -
request.timeout.ms = 5000(超时 5 秒,这将适用于重试 - 所以 总时间为 50 秒,在消息被视为失败并出现在错误通道之前) -
enable.idempotence = false(再次,不确定这个选项?) -
retry.backoff.ms = 100(这是默认设置 - 再次值得一玩吗?)
这些价值观听起来如何? 我有什么遗漏吗?
【问题讨论】:
-
我保留您选择的标签,但听起来这个问题与 Spring Integration 或 Spring Kafka 无关。确实是 Apache Kafka Producer 选项。即使没有 Spring Integration 和 Spring Kafka,你也会面临同样的问题。
-
official documentation 很好地描述了这些配置。
标签: java spring apache-kafka spring-integration