开发者社区> 问答> 正文

负载均衡服务TCP端口健康检查成功,为什么在后端业务日中出现网络连接异常信息?

负载均衡服务TCP端口健康检查成功,为什么在后端业务日中出现网络连接异常信息?

展开
收起
祁同伟 2017-09-13 16:10:15 5055 0
1 条回答
写回答
取消 提交回答
  • 域名投资、域名选择、域名交易、域名行情等@我

    如果在负载均衡后端配置TCP服务端口后,后端业务日志中频繁出现类似如下网络连接异常错误信息。经进一步抓包分析,发现相关请求来自负载均衡服务器,同时负载均衡主动向服务器发送了RST数据包。
    该问题和负载均衡的健康检查机制有关。

    对于采用TCP协议的负载均衡服务端口,由于TCP对上层业务状态无感知。同时,为了降低负载均衡健康检查成本和对后端业务的冲击。当前负载均衡针对TCP协议服务端口的健康检查只会做简单的TCP三次握手,而后直接发送RST包断开TCP连接。数据交互流程概要说明如下:

    负载均衡服务器向后端负载均衡服务端口发送SYN请求包;

    后端服务器收到请求后,如果端口状态正常,则按照正常的TCP机制返回相应的SYN+ACK应答包;

    负载均衡服务器成功收到后端服务端口应答后,则认为端口监听是正常的,记录健康检查是正常的;

    负载均衡服务器向相应TCP服务端口直接发送RST包主动关闭连接,并不会继续发送业务数据,结束本次健康检查操作。

    如上所述,由于健康检查成功后,负载均衡服务器直接发送TCP RST包中断了连接,并没有做进一步的业务数据交互。所以会导致上层业务(比如Java连接池等)认为相应的连接是异常的,所以会出现Connection reset by peer等错误信息。

    解决方案:

    更换TCP协议端口为HTTP协议

    在业务层面,对来自SLB服务器IP地址段的相关请求做日志过滤,以忽略相关错误信息。
    更多内容详见https://help.aliyun.com/knowledge_detail/55205.html
    欢迎尊敬的题主来到阿里云云栖社区,希望我私人的回答能对你有帮助,你可以继续留言或者到论坛参与更多的互动。

    2019-07-17 21:35:18
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
双十一技术揭秘 负载均衡性能优化演进之路 立即下载
负载均衡是如何支撑几亿手机微博用户访问的高性能负载均衡研发 立即下载
大规模场景下KubernetesService 负载均衡性能 立即下载