反向代理代表客户端处理多个请求的问题之一是,经过一段时间的重负载后,从envoy节点到后端节点的传出连接数将耗尽临时端口
假设我们为envoy节点分配了多个ip addreses / hostnames,有没有办法通知envoy在连接到后端时以循环方式使用这些ip地址/主机名?
参考文献:
答案 0 :(得分:3)
最有希望的选择是找到一种在代理/ LB和后端服务器之间启用TCP多路复用的方法。
What is TCP Multiplexing?
TCP多路复用是一种主要由负载均衡器和应用程序交付控制器(以及一些独立的Web应用程序加速解决方案)使用的技术,使设备能够重用"现有的TCP连接。这类似于持久HTTP 1.1连接的工作方式,即单个HTTP连接可用于检索多个对象,从而减少TCP开销对应用程序性能的影响。
TCP复用允许基于TCP的应用程序(通常是HTTP / Web)发生同样的事情,除了重用仅限于1个客户端,连接可以在许多客户端上重用,从而提高效率。 Web服务器和性能更快的应用程序。
可以找到关于TCP多路复用的另一个很好的解释here。
另一个选择是在L4网络Load Balancer后面的池中添加更多代理实例,并将一个实例的连接限制设置为合理的值。 每个代理都会带来一定的负载而没有问题。如果需要在加载中处理周期性突发,则可能需要将自动扩展策略设置为代理池。