Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图1

Azure上的负载均衡类产品除了之前介绍的4层负载均衡(请参照《 Azure 上的高可用(1)-负载均衡》),还有一个跨区域的产品,这就是Azure Traffic Manager,和4层负载均衡相比,Azure Traffic Manager 最大的区别是提供跨区域的负载均衡。

Azure 流量管理器是一种基于 DNS 的流量负载均衡器,可以在全球 Azure 区域内以最佳方式向服务分发流量,同时提供高可用性和响应性。
流量管理器根据流量路由方法和终结点的运行状况,使用 DNS 将客户端请求定向到最合适的服务终结点。 终结点可以是托管在 Azure 内部或外部的任何面向 Internet 的服务。 流量管理器提供多种流量路由方法和终结点监视选项来满足不同的应用程序需求和自动故障转移模型。 流量管理器能够灵活应对故障,包括整个 Azure 区域的故障。

Azure 流量管理器基础知识:

基础知识.mp4 (26.63MB)流量管理器提供了6种路由方法,包含:
1.优先级(Priority):
流量管理器配置文件包含服务终结点的优先顺序列表。 默认情况下,流量管理器将所有流量发送到主终结点(优先级最高)。 如果主终结点不可用,流量管理器会将流量路由到第二个终结点。 如果主终结点和辅助终结点都不可用,流量会转到第三个终结点,依此类推。 终结点的可用性取决于配置的状态(已启用或已禁用)和正在进行的终结点监视。
可以使用每个终结点的“priority”属性显式配置终结点优先级。 此属性是一个介于1 和 1000 之间的值。 值越小,优先级越高。 终结点不能共享优先级值。 该属性的设置是可选的。 如果省略该属性,会根据终结点顺序使用默认优先级。
Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图3
2.加权(Weighted):
在“加权”流量路由方法中,权重是从 1 到 1000 的整数。 此参数是可选的。 如果省略此参数,流量管理器会使用默认权重“1”。 权重越高,优先级就越高。
对于收到的每个 DNS 查询,流量管理器会随机选择一个可用终结点。 选择哪个终结点取决于分配到所有可用终结点的权重。 对所有终结点使用相同的权重会导致均匀分布流量。
加权方法可以实现一些有用的方案:
应用程序逐步升级:分配要路由到新终结点的流量百分比,并随着时间的推移逐渐将流量增加到100%。
将应用程序迁移到 Azure:创建包含 Azure 终结点和外部终结点的配置文件。 调整终结点的权重,优先选择新终结点。
适用于更多容量的云爆发:通过将本地部署放在流量管理器配置文件之后,快速将本地部署扩展到云中。 当你需要在云中获得额外的容量时,可以添加或启用更多终结点,并指定哪部分流量将流向每个终结点。
必须知道,客户端及其用来解析 DNS 名称的递归 DNS 服务器会缓存 DNS 响应。 这种缓存可能会影响到加权流量分布。 如果客户端和递归DNS 服务器的数目较大,流量分布将按预期工作。 但是,如果客户端或递归DNS 服务器的数目较小,缓存可能会严重影响流量分布。
Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图4

3.性能(Performance):
在国家或区域的两个或更多位置部署终结点,将流量路由到“最靠近”你的位置,即可改善许多应用程序的响应能力。 “性能”流量路由方法提供这种能力。
“最靠近”的终结点不一定是地理距离最近的终结点。 “性能”流量路由方法通过测试网络延迟来确定最靠近的终结点。 流量管理器维护一份Internet 延迟表,用于跟踪 IP 地址范围与每个 Azure 数据中心之间的往返时间。
流量管理器在 Internet 延迟表中查找传入 DNS 请求的源 IP 地址。 然后,流量管理器在处理该IP 地址范围的请求时具有最低延迟的Azure 数据中心内选择一个可用终结点,并在DNS 响应中返回该终结点。
流量管理器定期更新 Internet 延迟表,反映全国 Internet 的变化以及新的 Azure 区域。 但是,由于Internet 上的负载会实时变化,应用程序性能也会随之变化。 “性能”流量路由不会监视给定服务终结点上的负载。 但是,如果某个终结点变得不可用,则流量管理器不会在DNS 查询响应中包括该终结点。
Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图5

4.地理(Geographic ):
流量管理器配置文件可以配置为使用“地理”路由方法,以便根据用户的DNS 查询所源自的地理位置将用户定向到特定终结点(“Azure”、“外部”或“嵌套”)。 这使流量管理器客户可以启用这样的方案:在这些方案中,了解用户的地理区域,并基于该地理区域路由用户很重要。 示例包括遵守数据所有权要求、内容本地化和用户体验,以及测量来自不同区域的流量。 为地理路由分配配置文件时,与该配置文件关联的每个终结点都需要有一组分配给它的地理区域。 地理区域的粒度可以是以下级别:
世界 - 任何区域
区域分组 - 例如,非洲、中东、澳大利亚/太平洋等。
国家/地区 - 例如,爱尔兰、秘鲁、中国香港特别行政区等。
省/自治区/直辖市 - 例如,美国加利福尼亚州、澳大利亚昆士兰州、加拿大阿尔伯达省等(注意:只有澳大利亚、加拿大和美国中的省/自治区/直辖市才支持此粒度级别)。
将一个或一组区域分配到某个终结点后,来自这些区域的任何请求仅路由到该终结点。 流量管理器使用DNS 查询的源 IP 地址来确定用户从中进行查询的区域- 通常,这将是代表用户执行查询的本地DNS 解析程序的 IP 地址。
Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图6

5.多值(Multivalue):
流量路由方法允许你在单个 DNS 查询响应中获得多个正常运行的终结点。 这使得调用方在返回的某个终结点无法响应时能够通过其他终结点进行客户端重试。 此模式可以提高服务可用性,并降低与新DNS 查询获取正常运行的终结点相关的延迟。 只有当所有终结点的类型都是“外部”并且指定为IPv4 或 IPv6 地址时,多值路由方法才有效。 当收到对此配置文件的查询时,会根据可配置的最大返回计数返回所有正常运行的终结点。
6.子网(Subnet):
流量路由方法允许你将一个最终用户IP 地址范围集映射到配置文件中的特定终结点。 此后,如果流量管理器收到针对该配置文件的DNS 查询,则它将检查该请求的源 IP 地址(大多数情况下,这是调用方使用的DNS 解析程序的传出 IP 地址),确定它映射到哪个终结点,并在查询响应中返回该终结点。

案例实战:将流量路由到离用户最近的站点

案例实战视频:

实战.mp4 (102.93MB)

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图8
**

实战步骤:

  1. 在中国北部和中国东部2分别创建一台虚拟机,命名为seanyuvm01和seanyuvm02;
  2. 设置两台虚拟机IP的DNS分别为:seanyuvm01.chinanorth.cloudapp.chinacloudapi.cn 和 seanyuvm02.chinaeast2.cloudapp.chinacloudapi.cn

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图9

  1. 虚拟机需开启3389端口,安装IIS,部署静态网站,开启防火墙80端口,此时可以通过IP访问静态网站;

网站下载地址:
https://github.com/Azure-Samples/html-docs-hello-world
示例网站:

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图10

  1. 创建“性能” 流量管理器(http://seanyutest.trafficmanager.cn ),将两台虚拟机的IP添加到流量管理器终结点;

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图11

  1. 在域名5gn.link 设置域名解析,添加 web.5gn.link CNAME 记录为流量管理器的 域名;

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图12

  1. 通过访问 流量管理器 seanyutest.trafficmanager.cn 和 域名 web.5gn.link 两个域名测试访问,分别从两台虚拟机(北部/ 东部2)访问,观察实际访问的网站位置。

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图13

关闭VM02的IIS后,会自动导流到VM01

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图14

Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图15

扩展:下图是基于流量管理器的可负载均衡至全球的结构,请自行设置并验证。
Azure Traffic Manager- 可以在全球 Azure 区域内以最佳方式分发流量 - 图16