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 负载均衡器的分发模式。