根据 Envoy 官方文档,加权集群可以实现 TCP 流量转移。我遇到的情况是,仅对于新的 TCP 连接,才需要将 TCP 流量从集群 A 转移到集群 B。我在工作环境中有一个来自
client -> envoy-> cluster A
的 WebSocket 连接处于活动状态。由于我不想中断 WebSocket 连接,我可以仅将新连接转移到集群 B,并保持流量路由到集群 A 的活动状态,直到所有活动连接都耗尽为止吗?
收到了 envoy-dev 团队的回复并测试了该场景。只有新连接才会路由到新添加的集群,现有连接将保持原样。 通过设置适当的耗尽和父关闭时间(https://www.envoyproxy.io/docs/envoy/latest/operations/cli#cmdoption-parent-shutdown-time-s),可以安全地使 WebSocket 连接不可用-不可破坏。