如果需要对一个云服务下的不同虚拟机实现负载均衡,可以将Public Port的消息通过负载均衡转发到每个VM,从而实现请求的自动负载均衡。

具体拓扑如下:

我们可以对之前创建的这两台虚拟机,设置80端口的负载均衡。

注意:Azure的负载均衡目前只支持四层,不能保留Session。

负载均衡的算法是Azure设置好的,不能修改。算法主要依赖于五元组(source IP, source port, destination IP, destination port, protocol type)。

 

Azure虚拟机在默认情况下,只开启了RDP的端口和PowerShell的端口,其他的端口都是关闭的。

 

我们为了测试,安装并开启2台虚拟机的web服务,并添加80端口的终结点。

安装web服务,第二台截图略

测试第一台WEB服务,正常!

第二台web服务器。

(注意:为了区分效果,2台web网页内容设置为不一样,实际情况下应该相同)

 

首先在第一台虚拟机上添加终结点,并创建负载均衡群集

Microsoft Azure系列之九 实现基于Iaas云服务的虚机负载平衡_第1张图片

点击“添加”

添加独立终结点

指定终结点名称“HTTP”,协议TCP,公用端口80,私有端口80,勾选“创建负载平衡群集”

Microsoft Azure系列之九 实现基于Iaas云服务的虚机负载平衡_第2张图片

设置负载平衡群集名称NLB-HTTP,探测协议TCP,探测端口及间隔,保持默认

Microsoft Azure系列之九 实现基于Iaas云服务的虚机负载平衡_第3张图片

第一台虚拟机终结点创建完成,

 

切换到第二台虚拟机

终结点页面

Microsoft Azure系列之九 实现基于Iaas云服务的虚机负载平衡_第4张图片

添加

选择将终结点添加到负载平衡群集“NLB-HTTP”

Microsoft Azure系列之九 实现基于Iaas云服务的虚机负载平衡_第5张图片

设置终结点名称HTTP,其余默认

第2台虚拟机终结点添加完成。

 

下面开始测试

找一台本地计算机,我们使用2个浏览器chrome和IE,模拟2个用户访问,效果如下:

IE

Microsoft Azure系列之九 实现基于Iaas云服务的虚机负载平衡_第6张图片

chrome

clip_p_w_picpath017

测试完成。

Azure Load Balancer(负载均衡器)的规则,是由五要素组成source IP, source port, destination IP, destination port, protocol type

参考资料:http://azure.microsoft.com/blog/2014/04/08/microsoft-azure-load-balancing-services/

最新的Azure Load Balancer可以将规则进行修改,改为2要素,(Source IP,Destination IP)或3要素(Source IP, Destination IP, Protocol)。这样由同一个客户端发起的请求,会指向同一个Azure目标服务器。通过这种方式,就可以保留Session。如下图所示: