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

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

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状态,就是所谓的2MSL状态。

MSL就是maximum segment lifetime(最大分节生命期),这是一个IP数据包能在互联网上生存的最长时间,超过这个时间将在网络中消失。

参考

HAProxy端口资源耗尽的解决办法

https://www.cnblogs.com/jimoliunian/p/13896263.html

使用 HAProxy 负载均衡300k并发tcp连接

https://www.sundayle.com/haproxy-optimization

haproxy TCP源端口耗尽问题

http://blog.sina.com.cn/s/blog_704836f40101jv9h.html

HAProxy, High MySQL Request Rate and TCP Source Port Exhaustion

https://www.haproxy.com/blog/haproxy-high-mysql-request-rate-and-tcp-source-port-exhaustion

新浪微博开放平台链接耗尽的情况分析

https://www.iteye.com/blog/go12345-1798119

おすすめ

転載: blog.csdn.net/michaelwoshi/article/details/120170117
おすすめ