为了防止单点故障,因为Azure提供的负载均衡器是高可用的,自己部署ARR也希望通过负载均衡高可用的话也需要通过构建ARR的可用性集,因此构建起来并不轻松。而且这种方式如果连接IIS环境的话需要IIS 7以上的版本;因此有没有折中的方式呢?现在Azure负载均衡器已经开放了一种新的二元组方式了。
二元组方式实现的会话粘滞也称为IP亲和性策略方式,这种方式下的Azure提供的负载均衡器只提供基于源IP地址和目标IP地址或源IP地址和目标IP地址加协议哈希转发到后端。通过这种IP亲和性策略可以实现同一个客户端连接请求总是被转发到指定的后端虚拟机(当然后端虚拟机状态是OK的前提下)。
之所以要叫做折中方式是因为目前这种方式也有局限性,后端虚拟机节点变化都会造成哈希节点重新计算,因此同一个客户端新的请求仍然会因为这一改变被转发到其他节点。另外,由于二元组策略的天然局限性,如果多个客户端通过NAT或者Proxy连接都会被视为同一个源地址而容易造成这些请求总被转发到指定节点造成不均衡负载的情况。
配置Azure二元组方式负载均衡器有三种途径:
通过Powershell或者Service Management API配置虚拟机端点负载均衡策略方式
对已有虚拟机Azure端点配置负载均衡策略:
1
<code>Get-AzureVM</code> <code>-ServiceName</code><code>"TestService1"</code> <code>-Name</code><code>"TestNode1"</code> <code>| </code><code>Add-AzureEndpoint</code> <code>-Name</code><code>"HttpIn"</code> <code>-Protocol</code><code>"tcp"</code> <code>-PublicPort80 -LocalPort80 LoadBalancerDistribution </code><code>"sourceIP"</code><code>| </code><code>Update-AzureVM</code>
LoadBalancerDistribution有三个参数
sourceIP为二元组
sourceIPProtocol为三元组
none为默认五元组。
也可以通过直接设置以后的已有负载均衡集的方式修改:
<code>Set-AzureLoadBalancedEndpoint</code> <code>-ServiceName</code><code>"TestService1"</code> <code>-LBSetName</code><code>"TestSet1"</code> <code>-Protocol tcp -LocalPort80 -ProbeProtocolTCP -ProbePort80 LoadBalancerDistribution</code><code>"sourceIP"</code>
本文转自 翟老猫 51CTO博客,原文链接:http://blog.51cto.com/3387405/1599114,如需转载请自行联系原作者