Azure 负载均衡器分发模式

Azure 负载均衡器支持以下用于将连接路由到后端池中实例的分发模式:

分发模式 基于哈希 会话持久性:客户端 IP 会话持久性:客户端 IP 和协议
概述 来自同一客户端 IP 的流量将路由到后端池中的任何正常实例 来自同一客户端 IP 的流量将路由到同一后端实例 来自同一客户端 IP 和协议的流量将路由到同一后端实例
元组 五元组 双元组 三元组
Azure 门户配置 会话持久性:无 会话持久性:客户端 IP 会话持久性:客户端 IP 和协议
REST API "loadDistribution":"Default" "loadDistribution":SourceIP "loadDistribution":SourceIPProtocol

在负载均衡器上从一种分发模式切换到另一种分发模式时,不会停机。

基于哈希

Azure 负载均衡器在默认情况下使用基于五元组哈希的分发模式。

5 元组包含:

  • 源 IP
  • 源端口
  • 目标 IP
  • 目标端口
  • 协议类型

哈希用于将流量路由到后端池中正常的后端实例。 算法仅在传输会话内部提供粘性。 客户端从同一源 IP 发起新会话时,源端口会更改,并导致流量去往其他后端实例。 若要配置基于哈希的分发,必须在 Azure 门户中将会话持久性选择为“无”。 这指定了任何虚拟机都可以处理来自同一客户端的后续请求。

基于哈希的分发

图:基于默认五元组哈希的分发

会话暂留

会话持久性也称为会话亲和性、源 IP 亲和性或客户端 IP 亲和性。 此分发模式使用二元组(源 IP 和目标 IP)或三元组(源 IP、目标 IP 和协议)哈希将流量路由到后端实例。 使用会话持久性时,来自同一客户端的连接将去往后端池中的同一后端实例。

会话持久性模式有两种配置类型:

  • 客户端 IP(2 元组)- 指定来自同一客户端 IP 地址的后续请求将由同一后端实例处理。
  • 客户端 IP 和协议(3 元组)- 指定来自同一客户端 IP 地址和协议组合的连续请求将由同一后端实例处理。

下图演示二元组配置。 请注意二元组如何从负载均衡器运行到虚拟机 1 (VM1)。 VM1 由 VM2 和 VM3 备份。

二元组会话关联分配模式

用例

源 IP 关联模式中的客户端 IP 和协议(源 IP 关联三元组)类型解决了 Azure 负载均衡器与远程桌面网关(RD 网关)之间的不兼容性。

另一个用例方案是媒体上传。 数据上传通过 UDP 进行,但控制平面通过 TCP 实现:

  • 客户端启动与负载均衡公共地址的 TCP 会话,并定向到特定 DIP。 通道将保持活动状态以监视连接运行状况。
  • 来自同一客户端计算机的新 UDP 会话在同一个负载均衡公共终结点中启动。 连接像前面的 TCP 连接一样定向到同一个 DIP 终结点。 能够以较高的吞吐量执行媒体上传,同时通过 TCP 维护控制通道。

注意

当通过删除或添加虚拟机更改负载均衡器后端池成员时,将重新计算客户端请求的分发。 无法确保现有客户端的新连接最终都会抵达同一台服务器。 此外,使用源 IP 亲和性分发模式可能导致流量分布不均匀。 在代理后面运行的客户端可被视为唯一的客户端应用程序。

后续步骤

有关如何配置 Azure 负载均衡器的分发模式的详细信息,请参阅配置 Azure 负载均衡器的分发模式