L4负载平衡器在服务器添加到池中时的行为

时间:2019-07-16 06:31:10

标签: load-balancing azure-load-balancer

据我了解,L4级负载均衡器例如Azure负载平衡器几乎总是无状态的,即它们不保持哪个流处理服务器在哪个TCP处理连接上的状态。

在服务器添加到DIP池的情况下,这种负载均衡器的行为是什么?它们会因为相应的数据包发送到新服务器而丢失某些连接吗?

2 个答案:

答案 0 :(得分:1)

  

据我了解,L4级负载均衡器例如Azure负载均衡器是   几乎总是无状态的,即它们不保持每个流的状态   服务器处理哪个TCP连接。

那是不对的。

默认情况下,Azure负载平衡器以5元组哈希分配模式(源IP,源端口,目标IP,目标端口和协议类型)在多个VM实例之间平均分配网络流量。您还可以配置会话关联性。有关更多信息,请参见Load Balancer distribution mode。对于会话亲缘关系,该模式使用2元组(源IP和目标IP)或3元组(源IP,目标IP和协议类型)哈希将流量映射到可用服务器。 通过使用源IP关联,从同一台客户端计算机发起的连接将到达同一DIP端点

  

在服务器情况下,这种负载均衡器的行为是什么   DIP池的新增内容?他们是否失去了一些联系,因为   相应的数据包被发送到新服务器?

它们不会失去连接。

负载平衡规则的工作依赖于运行状况探测器来检测后端实例上应用程序的故障。请参阅probe down behavior。如果后端实例的运行状况探测失败,请与该后端实例建立TCP连接继续。对于新的TCP连接,它将连接到其余的正常实例。负载均衡器不会终止或发起流量。它是一种直通服务(不会终止TCP连接),并且流始终在客户端与VM的来宾OS和应用程序之间。

答案 1 :(得分:0)

发现了Ananta: Cloud Scale Load Balancing - SIGCOMM篇论文,该论文实际上说每流状态存储在一台MUX机器(未复制)中,该机器从路由器接收关联的流量。因此,只要MUX机器保持不变,添加服务器就不会影响现有的TCP连接。