(下面是一个假设场景,当我发现 gRPC 负载平衡的复杂性以及由于长期存在的 TCP 连接而效率低下时,我想到了这个问题)
假设有一个 HTTP 客户端维护单个 TCP 长期连接,用于向位于 HA 代理后面的 API 服务发出 HTTP 1.1 请求。该服务有多个冗余服务器部分,我想平衡不同上游服务器之间同一 TCP 连接上的所有请求。这样的事情可能吗?
我知道客户端可以打开多个连接到 LB,这将有助于解决问题。
但我想知道是否可以使用某些 HA 代理配置直接执行此操作。如果没有,为什么缺少这样的功能?是由于某种网络/HTTP 协议限制吗?还是因为有其他解决方法,所以从来不需要这样的功能?
假设 TLS 在 HA 代理处终止,因此它可以执行 L7 路由。HAProxy 也只是一个例子,任何其他 LB/代理,如 Envoy、Nginx 都具有此功能?