kafka
network_error
ai_generated
partial
org.apache.kafka.common.errors.FetchTimeoutException:分区my-topic-0的获取请求在30000毫秒后超时
org.apache.kafka.common.errors.FetchTimeoutException: Fetch request timed out after 30000 ms for partition my-topic-0
ID: kafka/consumer-fetch-timeout
75%修复率
82%置信度
1证据数
2023-11-20首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| kafka 3.0.0 | active | — | — | — |
| kafka 3.3.0 | active | — | — | — |
| kafka 3.5.0 | active | — | — | — |
根因分析
由于网络拥塞、代理过载或分区领导者缓慢,消费者对代理的获取请求超过了配置的超时时间。
English
The consumer's fetch request to the broker exceeded the configured timeout due to network congestion, broker overload, or a slow partition leader.
官方文档
https://kafka.apache.org/documentation/#consumerconfigs_fetch.max.wait.ms解决方案
-
Increase the broker's 'fetch.purgatory.purge.interval.requests' and tune 'num.network.threads' to handle more concurrent fetch requests, reducing queue delays.
-
Add a retry mechanism in the consumer with exponential backoff on FetchTimeoutException, and reduce fetch.min.bytes to allow smaller, faster responses.
无效尝试
常见但无效的做法:
-
40% 失败
This only masks the timeout and can lead to increased consumer latency and backlog, without fixing the underlying network or broker issue.
-
70% 失败
Restarting re-establishes the connection but does not resolve persistent network or broker load issues; the timeout will recur.