kafka
runtime_error
ai_generated
true
事务超时异常:事务协调器因超时已中止事务
org.apache.kafka.common.errors.TransactionTimeoutException: The transaction coordinator has aborted the transaction due to timeout
ID: kafka/transaction-abort-timeout
80%修复率
86%置信度
1证据数
2024-05-12首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| Kafka 3.6.0 | active | — | — | — |
| Kafka 3.7.1 | active | — | — | — |
根因分析
Kafka事务超过了配置的max.transaction.timeout.ms,导致协调器中止事务以释放资源。
English
A Kafka transaction exceeded the configured max.transaction.timeout.ms, causing the coordinator to abort it to free resources.
官方文档
https://kafka.apache.org/documentation/#transaction_config解决方案
-
Increase `max.transaction.timeout.ms` in broker config (e.g., to 300000) and restart broker, then set producer's `transaction.timeout.ms=120000`.
-
Optimize transaction logic to complete within the default 60000ms by batching fewer records or reducing external calls.
-
Example broker config: `transaction.max.timeout.ms=300000` in server.properties, then producer config: `props.put(ProducerConfig.TRANSACTION_TIMEOUT_CONFIG, 120000);`
无效尝试
常见但无效的做法:
-
75% 失败
The broker's max.transaction.timeout.ms overrides the producer setting, so the timeout still applies.
-
60% 失败
It is not a fix; it changes the application's semantics and may cause duplicate writes.