《Windows Azure Platform 系列文章目录》
注意:本文介绍的是使用国内由世纪互联运维的Azure China服务。
以前的Traffic Manager,背后的Service Endpoint必须是Azure数据中心的Cloud Service。
现在最新的Traffic Manager,Endpoint不仅仅支持Azure数据中心的Cloud Service和Web Site。同时还支持部署在自建数据中心(第三方托管)的应用程序。
这种增强功能对客户的收益在于,平时客户可以访问部署在Azure数据中心的应用。如果Azure数据中心发生问题,可以切换到用户部署在自建数据中心的应用程序。实现高可用。
注意:如果需要添加自建数据中心(第三方托管)的应用程序,必须使用Azure PowerShell命令行工具。
模拟场景:假设某公司有2个托管网站
- 一个部署在Azure数据中心,DNS为LeiTestWinVM.chinacloudapp.cn
- 另外一个托管在自建数据中心,DNS为www.sjtu.edu.cn (咳咳,只能使用母校的域名了)
- 我们需要使用Azure PowerShell创建Traffic Manager,负载均衡器规则设置为Failover(故障转移)。同时使用Azure PowerShell增加以上2个服务的DNS节点。
有关Azure PowerShell的内容笔者不想重复了,不熟悉的读者可以参考笔者之前的文档:
Azure PowerShell (1) PowerShell入门
1.我们执行以下命令:
$profile = New-AzureTrafficManagerProfile -Name "LeiTrafficManager" -DomainName "LeiTrafficManager.trafficmanager.cn" -LoadBalancingMethod "Failover" -Ttl 30 -MonitorProtocol "Http" -MonitorPort 80 -MonitorRelativePath "/" $profile = Add-AzureTrafficManagerEndpoint -TrafficManagerProfile $profile -DomainName "LeiTestWinVM.chinacloudapp.cn" -Status "Enabled" -Type "CloudService" $profile = Add-AzureTrafficManagerEndpoint -TrafficManagerProfile $profile -DomainName "www.sjtu.edu.cn" -Status "Enabled" -Type "Any" Set-AzureTrafficManagerProfile –TrafficManagerProfile $profile
上面的命令行中:
- 第一行命令,创建了新的Traffic Manager,并且命名为LeiTrafficManager,定义了负载均衡器规则设置为Failover(故障转移),监控的协议为HTTP,同时设置了TTL和监控的端口80
- 第二行命令,对Traffic Manager增加Azure云端的DNS 服务:LeiTestWinVM.chinacloudapp.cn (为一台Azure虚拟机)
- 第三行命令,对Traffic Manager增加本地托管的DNS服务:www.sjtu.edu.cn
- 第四行命令,创建该Traffic Manager
2.执行结果如下:
3.查看Azure Management Portal的配置页面
上图中,配置页面中的内容,就是笔者在步骤一的配置。
注意上图中红色部分,故障转移优先级列表:
- 如果2个云服务都是联机状态。用户优先访问Azure云上的服务, DNS为:LeiTrafficManager.trafficmanager.cn
- 如果Azure云上的服务发生异常宕机了。用户访问列表上的第2个地址,DNS为:www.sjtu.edu.cn
4.当Azure Traffic Manager配置的DNS都是联机状态下:
访问Traffic Manager,会优先访问到第一个DNS服务器地址。截图如下:
5.如果我们模拟第一个DNS服务器发生宕机的情况。比如笔者将Azure VM关闭。观察到Azure VM所在的DNS状态为已降级。如下图:
6.这时候我们再访问Traffic Manager,会优先访问到第二个DNS服务器地址。截图如下:
这样,就实现了横跨本地应用+云端应用的高可用。
7.最后请读者别忘记了,将自己的域名增加CName,指向Traffic Manager所在的DNS服务。