连接池#

Connection Pool 使用连接重用等机制,提高了到同一 upstream cluster 下的同一 upstream endpoint 的连接建立效率。

TCP Proxy 连接池#

为让读者更容易理解连接池,以下先以相对比较简单的 TCP Proxy 连接池 来说明连接池的设计。

TCP Proxy 连接池概述#

首先概述一下 Cluster Manager / Load Balancer / Connection Pool / Network Filter 的模块协作:

图:Envoy TCP Proxy connection pool at high level

图:Envoy TCP Proxy connection pool at high level#

用 Draw.io 打开

可见,每一个 downstream / upstream pair (Downstream-Upstream-Bundle) 均创建专用的,只有一个有效 upstream connection 的 connection pool 。原因是 TCP Proxy 的 upstream 连接不能重用(reuse)。

TCP Proxy 连接池详述#

再在 Class 层,看看 Cluster Manager / Load Balancer / Connection Pool / Network Filter 的模块协作:

图:Envoy TCP Proxy connection pool at class level

图:Envoy TCP Proxy connection pool at class level#

用 Draw.io 打开

HTTP 连接池#

//TODO