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

其他格式: JSON · Markdown 中文 · English
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.

generic

官方文档

https://kafka.apache.org/documentation/#transaction_config

解决方案

  1. Increase `max.transaction.timeout.ms` in broker config (e.g., to 300000) and restart broker, then set producer's `transaction.timeout.ms=120000`.
  2. Optimize transaction logic to complete within the default 60000ms by batching fewer records or reducing external calls.
  3. Example broker config: `transaction.max.timeout.ms=300000` in server.properties, then producer config: `props.put(ProducerConfig.TRANSACTION_TIMEOUT_CONFIG, 120000);`

无效尝试

常见但无效的做法:

  1. 75% 失败

    The broker's max.transaction.timeout.ms overrides the producer setting, so the timeout still applies.

  2. 60% 失败

    It is not a fix; it changes the application's semantics and may cause duplicate writes.