我想微调Producer的KafkaTemplate
选项,以尽可能最佳地处理各种故障转移和恢复方案。
我们KafkaProducerMessageHandler
以sync
模式运行(即等待发送操作结果 - 参见: acks
如下)。 注意:这在当前版本的Kafka中是必需的,以启用 ErrorChannel 报告。
以下是我选择的选项:
acks = 1
(我们正在对卡夫卡进行基本的认可
经纪人领袖) retries = 10
max.in.flight.requests.per.connection = 1
(如果达到错误状态,这将使邮件按顺序排列) linger.ms = 1
(不确定这个或是否相关?) request.timeout.ms = 5000
(超时五秒,这将适用于重试 - 所以
消息被视为失败之前的总时间为50秒,然后将显示在错误频道上 enable.idempotence = false
(再次,不确定此选项?) retry.backoff.ms = 100
(这是默认设置 - 再次值得玩吗?) 这些值如何发声? 有什么我想念的吗?
答案 0 :(得分:1)
这是一篇关于Kafka制片人调整的老帖子:http://ingest.tips/2015/07/19/tips-for-improving-performance-of-kafka-producer/
TLDR版本:
注意' batch.size'并且' linger.ms'参数。