问题现象
往kafka写入数据的时候,出现如下异常:
org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received,going to request metadata update now
同时kafka server.log有类似的Attempting to send response via channel for which there is no open connection
异常。
目前所作的检查
检查Kafka集群网络,目前网络是正常的。
对于这种问题,还望大佬能帮忙看看是啥问题。
kafka在诊断网络问题时,需要清楚地了解哪个客户端在什么时间与哪个broker断开连接。
目前,当生产者在响应中收到
NETWORK_EXCEPTION
时,会记录以下内容。[Producer clientId=<CLIENT>] Received invalid metadata error in produce request on partition <partition> due to org.apache.kafka.common.errors.NetworkException: The server disconnected before a response was received.. Going to request metadata update now
所以,你这个错误是客户端已经断开了连接,broker还未来得及响应产生的。
如果未影响业务,可以忽视。(一般是客户端未优雅停机)
大佬,你好,客户端目前是一直在往kafka写数据的,出现上述的告警以后,生产者那边也会出现告警,也就影响到了业务。看集群的网络,内存使用,磁盘io这些都是正常的。一般如果客户端是后台程序,如果出现上述的问题,一般从哪几个方面入手观察呢。
先确认客户端是否有进行优雅停机。
大佬,问题解决了吗?我也刚遇到了。问一下,你现在还有这个问题吗
(他回信息了,但是是邮件形式回复到管理员里了,我把内容贴给你.)
坏脾气先森:
这个解决倒是解决了呢,但是我们当时出现这个问题是由于在启动其他节点,导致在reblance的时候,出现了这个问题
使用的producer的close方法,应该就是优雅停机了,是否加 get() 方法改为同步发送就会避免这个网络断开的问题呢?
加get没用哦,连接还是同一条,只是阻塞等待确认。
你的答案