在 Ubuntu 上配置 Kafka 的“超时时间”,要看你指的是哪一类超时。Kafka 里超时相关参数很多,下面按常见场景给你说明(假设 Kafka 是用 .properties 文件配置的,通常在 /etc/kafka/ 或 /opt/kafka/config/)。
server.properties
# Socket 超时(毫秒)
socket.timeout.ms=30000
# 请求最大等待时间
request.timeout.ms=30000
controller.socket.timeout.ms=30000
# Follower 多久没同步算掉线
replica.lag.time.max.ms=30000
# 副本响应超时
replica.socket.timeout.ms=30000
# 日志刷新最大等待时间
log.flush.interval.ms=1000
producer.properties 或代码中设置:
# 发送超时(毫秒)
request.timeout.ms=30000
# 重试等待
retry.backoff.ms=1000
# 本地缓冲满后阻塞时间
max.block.ms=60000
Java 示例:
props.put("request.timeout.ms", "30000");
props.put("delivery.timeout.ms", "120000");
consumer.properties:
# 心跳超时(超过会被踢出消费组)
session.timeout.ms=10000
# 心跳间隔
heartbeat.interval.ms=3000
# 一次 poll 最大处理时间
max.poll.interval.ms=300000
# 请求超时
request.timeout.ms=30000
zookeeper.session.timeout.ms=18000
zookeeper.connection.timeout.ms=18000
✅ Kafka 2.8+ 可不使用 Zookeeper(KRaft 模式)
# 修改配置后重启 Kafka
sudo systemctl restart kafka
或(取决于安装方式):
/opt/kafka/bin/kafka-server-stop.sh
/opt/kafka/bin/kafka-server-start.sh -daemon /opt/kafka/config/server.properties
| 现象 | 配置项 |
|---|---|
| 生产者发送超时 | request.timeout.ms |
| 消费者被踢 | session.timeout.ms |
| 副本不同步 | replica.lag.time.max.ms |
| 消费太慢被踢 | max.poll.interval.ms |
如果你能说明:
我可以给你精确的一行配置。