华为云CCE部署netty报错Connection reset by peer

背景

最近在部署一个netty服务,通过华为云的ELB暴露到外网提供服务,业务一切正常。

但在查看Pod日志时,发现大量的Connection reset by peer报错,连接的IP都是所在Pod的Node IP。

原因

华为云ELB节点会进行健康检查,向后端IP+端口发送TCP SYN报文。服务器如果收到该报文,就会返回SYN+ACK报文。

如果时间规定范围内没有收到服务器的SYN+ACK报文,就会判定健康检查失败,然后发送RST报文断开连接。

如果收到了SYN+ACK报文,则发送ACK给服务器,判定健康检查成功,然后发送RST报文并断开连接。

正常的TCP三次握手后,会进行数据传输,但是在健康检查时会发送RST中断建立的TCP连接。该实现方式可能会导致后端服务器中的应用认为TCP连接异常退出,并打印错误信息,如“Connection reset by peer”。

如何解决

我也不知道怎么解决,华为云说这是正常范围内的错误,只能屏蔽日志咯😫

dark
sans