带有transactionIdPrefix的DefaultKafkaProducerFactory会在引导服务器关闭时等待

时间:2018-01-12 12:43:09

标签: java apache-kafka kafka-producer-api spring-kafka

HY,

我正在使用spring-kafka 1.3.0.RELEASE创建一个事务生成器。 当引导服务器关闭时,DefaultKafkaProducerFactory会无休止地等待,直到引导服务器启动。

我做错了什么? 我可以设置超时和/或其他类似属性吗?

这是我重现场景的代码示例:

&()[]{}^=;!'+,`~<|>"

1 个答案:

答案 0 :(得分:3)

这是由工厂在创建生成器后调用initTransactions()引起的,例如,如果没有足够的代理来支持事务日志复制因子。

我不知道为什么超时不适用于该操作。

我们可能会更改工厂以将initTransactions()推迟到第一个beginTransaction() - 但这只会将问题推向下游。

我使用kafka 1.0.0客户端测试(可以与1.3.1或更高版本一起使用 - 目前为1.3.2)并且它仍然存在问题。我认为它应该尊重TRANSACTION_TIMEOUT_CONFIG,但似乎不是。

我建议在Kafka JIRA上打开一个问题。