c++ kafka 客户端rdkafka报Receive failed: Disconnected问题原因以及解决方法
%3|1538976114.812|FAIL|rdkafka#producer-1| [thrd:kafka-server:9092/bootstrap]: kafka-server:9092/0: Receive failed: Disconnected
%3|1538976114.812|ERROR|rdkafka#producer-1| [thrd:kafka-server:9092/bootstrap]: kafka-server:9092/0: Receive failed: Disconnected
%3|1538976114.812|ERROR|rdkafka#producer-1| [thrd:kafka-server:9092/bootstrap]: 1/1 brokers are down
原因:
Why am I seeing Receive failed: Disconnected
?
If the remote peer, typically the broker (but could also be an active TCP gateway of some kind), closes the connection you'll see a log message like this:
%3|1500588440.537|FAIL|rdkafka#producer-1| 10.255.84.150:9092/1: Receive failed: Disconnected
There are a number of possible reasons, in order of how common they are:
- Broker's idle connection reaper closes the connection due to inactivity. This is controlled by the broker configuration property
connections.max.idle.ms
and defaults to 10 minutes. This is by far the most common reason for spontaneous disconnects. - The client sent an unsupported protocol request; see Broker version compatibility. This is considered a configuration error on the client. The broker should log an exception explaining why the connection was closed, see the broker logs.
- The client sent a malformed protocol request; this is an indication of a bug in the client. The broker should log an exception explaining why the connection was closed, see the broker logs.
- The broker is in an invalid state. The broker should log an exception explaining why the connection was closed, see the broker logs.
- TCP gateway/load-balancer/firewall session timeout. Try enabling TCP keep-alives on the client by setting
socket.keepalive.enable=true
.
Since a TCP close can't signal why the remote peer closed the connection there is no way for the client to know what went wrong. If the disconnect logs are getting annoying and the admin deems they are caused by the idle connection reaper, the
log.connection.closeclient configuration property can be set to
falseto silence all spontaneous disconnect logs.
NOTE: Whenever a connection is closed for whatever reason, librdkafka will automatically reconnect after
reconnect.backoff.jitter.ms(default 500ms).
简单的说,其中之一是服务器会kill掉10分钟空闲的连接,librdkafka会在连接断开后500毫秒内重连。所以,根本解决方法就是没事每分钟发个心跳信息。
参考:https://github.com/edenhill/librdkafka/wiki/FAQ#why-am-i-seeing-receive-failed-disconnected
- 使用ArcGIS GP服务遇到的问题,原因以及解决方法 - 客户端API开发(Javascript/Flex/Silverlig 转载
- 使用dnspod遭遇的奇特问题以及背后的原因与临时解决方法
- Linux下的QQ客户端EVA初试以及ibus输入法问题的解决方法
- Android类app的安全问题造成漏洞的原因以及解决方法
- MySQL事件调度器无效的问题原因以及解决方法
- kafka安装以及常见问题的解决【如:服务端是ok的,java客户端却始终调不通】
- c++ std::sort函数调用经常出现的invalidate operator<错误原因以及解决方法
- kafka安装,管理,以及常见问题的解决【如:服务端是ok的,java客户端却始终调不通】
- 3D商城服务器开发过程中遇到的问题,原因以及解决方法。。。
- ubuntu linux qq崩溃问题的解决方法以及原因
- 梯度爆炸与梯度消失的原因以及解决方法,局部极小值问题以及学习率问题(对SGD的改进)
- 区别对待 【找到问题发生的原因】 以及 【关于这个问题的 「正确可行」 的解决方法】
- 关于DrCom上网客户端与Apache冲突的问题解决方法(更新)
- 整理ArcSDE 安装过程出现问题以及解决方法系列
- 整理ArcSDE 安装过程出现问题以及解决方法系列
- 计算机小技巧集锦 (增加你计算机的安全系数以及一些问题的解决方法)
- 解决ASP 2.0中GridView控件的删除、插入、编辑命令操作客户端确认问题的另一方法
- 整理ArcSDE 安装过程出现问题以及解决方法系列
- 基于消息分发的多线程程序设计,常见的问题,以及解决方法
- 今天遇到的几个问题以及解决方法