通过负载均衡器的单个 TCP 连接是否隐式“粘性”?

问题描述 投票:0回答:1

我有一个客户端,它使用 TCP/TLS 与后端服务器的负载平衡池进行通信。

该协议是一个流协议,没有请求和响应的概念。

一旦与后端服务器之一建立连接,例如

S1
,我是否可以假设来自客户端的所有后续 TCP/TLS 数据包将继续流向
S1
,无论选择何种负载均衡器类型,例如EC2 世界中的应用程序和经典负载均衡器,甚至可能是网络负载均衡器?

如果断开连接后,来自该客户端的新连接会负载平衡到另一个后端服务器

S2

注意: 本质上,我不确定是否所有负载均衡器都执行 DNAT,在这种情况下,

S1
一旦被负载均衡器选择,就会在连接的整个生命周期内为客户端保留。

tcp sticky-session loadbalancer
1个回答
0
投票

最初与单个服务器建立 TCP 连接(TCP 握手),并且该连接端点具有有关连接当前状态的信息。

如果负载均衡器将同一连接的不同数据包发送到不同的上游服务器,则只有一部分数据包会到达具有 TCP 连接状态的上游。从上游的角度来看,这看起来像是一个丢包的连接,因此服务器无法继续处理有效负载。类似地,另一个上游不会有连接状态,因此丢弃/拒绝这些意外的数据包。

换句话说——它根本行不通。但由于负载均衡器实际上可以工作,因此您可以依靠它们正确分发任何数据包,即保持连接状态并且只有一个上游用于连接。

© www.soinside.com 2019 - 2024. All rights reserved.