【HAPrxoy】如何解决使用haproxy作为反向代理端口耗尽问题?

本文探讨了在高并发场景中,HAProxy作为负载均衡器可能遇到的TCP源端口耗尽问题,解释了TIME_WAIT状态的作用,并提供了端口复用、配置优化和网络故障排查的策略。同时提及了相关技术文章和实例,帮助读者理解和应对类似挑战。

高并发中负载均衡器临时端口耗尽问题

https://www.maideliang.com/index.php/archives/48/

1. 对于tcp请求来说,tcp的客户端服务端概念和http的不同,请求双方,哪边关闭请求,哪边就是tcp客户端,另一边就为服务端。

2、tcp的一个链接由4个值确定,源ip、源端口、目标ip、目标地址。

tcp状态图中有一个TIME_WAIT状态,也叫2MSL状态,该状态是为了保证在tcp客户端发给tcp服务端最后一个ACK能顺利到达的一个等待状态。若没有TIME_WAIT状态,tcp客户端将直接进入CLOSED 状态,但有时由于网络原因,ACK 响应丢失,tcp服务端收不到 ACK,将重发FIN,CLOSED 状态的tcp客户端将返回RST ,而不是ACK。将导致tcp服务器异常。

也就是为了这个原因,tcp的客户端将会把连接保留在2MSL状态一段较长的时间。在这段时间里等待重发的FIN。这里需要注意的是,在2MSL状态的连接是不可以被重新使用。

那么什么是2MSL状态呢?

请看下图,这是关于TCP关闭连接时的握手序列:

上边TCP状态图中有一个TIME_WAIT

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值