1.2.2.13 连接池

优质
小牛编辑
125浏览
2023-12-01

对于HTTP流量,Envoy支持在基础协议(HTTP/1.1或HTTP/2)之上分层的抽象连接池。过滤器代码不需要知道底层协议,是否支持复用。实际上,底层实现具有以下高级属性:

HTTP/1.1

HTTP/1.1连接池根据需​​要获取上游主机的连接(达到断路极限)。当连接可用时,请求被绑定到连接上,或者是因为连接完成处理先前的请求,或者是因为新的连接准备好接收其第一请求。HTTP/1.1连接池不使用流水线,因此如果上游连接被切断,则只有一个下游请求必须被重置。

HTTP/2

HTTP/2连接池获取与上游主机的单个连接。所有请求都通过此连接复用。如果收到一个GOAWAY帧,或者如果连接达到最大流限制,连接池将创建一个新的连接并且耗尽现有连接,HTTP/2是首选的通信协议,因为连接很少被切断。

与健康检查交互

如果将Envoy配置为进行主动或被动健康检查,这意味着一个主机从正常状态转换为不健康状态后,将会关闭所有连接池连接。如果主机重新进入负载均衡轮训,它将创建新的连接,这将最大限度地提供机会处理坏流量(由于ECMP路由或其他)。