[Kafka] |FAIL|rdkafka#producer-1 : Receive failed: Disconnected

Why am I seeing Receive failed: Disconnected?

1. broker 的空闲连接回收器关闭不活跃连接。

由 broker 的配置属性 connections.max.idle.ms 控制,默认是 10 分钟。

这是目前为止最常见的自发断开连接的原因。

2. 客户端发送了一个不支持的协议请求;这可以认为是客户端的配置错误。

broker 应该记录一个关闭原因的异常日志,见 broker logs。

3. 客户端发送一个缺陷的协议请求;这表示是客户端的一个 bug。

broker 应该记录一个关闭原因的异常日志,见 broker logs。

4. broker 在一个无效的状态。

broker 应该记录一个关闭原因的异常日志,见 broker logs。

5. TCP 网关/负载均衡器/防火墙 会话超时。

尝试在客户端开启 TCP keep-alives,通过设置 socket.keepalive.enable 为 true。

6. 由于 TCP 关闭不能发信号给远程对等方关闭的原因,客户端无法知道出了什么问题。

如果断开连接的日志越来越烦人 并且 管理员认为是连接回收器导致的,

客户端可以设置 log.connection.close 为 false 来静默所有自发断开连接的日志。


注意:不管出于什么原因连接关闭,librdkafka 会在 reconnect.backoff.jitter.ms (默认500ms) 之后自动重连。

Ref:https://github.com/edenhill/librdkafka/wiki/FAQ#why-am-i-seeing-receive-failed-disconnected

Link:https://www.cnblogs.com/farwish/p/10432644.html

原文地址:https://www.cnblogs.com/farwish/p/10432644.html