Azure 基础:使用 Traffic Manager 分流用户请求

前端之家收集整理的这篇文章主要介绍了Azure 基础:使用 Traffic Manager 分流用户请求前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

性能,我们往往部署多个站点并通过负载均衡来对外提供服务。Azure 提供的 Traffic Manager 服务属于负载均衡的一种,特点是工作在 DNS 层,因此具有配置简单的优势。本文将通过一个 demo 演示如何通过 Traffic Manager 实现根据用户的地理位置来分流用户的请求。

数量的请求。或者是随时添加新的节点提升服务的响应能力。通过 Traffic Manager 这些功能都够轻松实现并且配置起来却很简单。提示服务的响应性能还可以逐个的断开节点进行维护或升级,从而实现无宕机的 web 服务。

用户的 web 客户端:你访问的服务器在哪里。所以它没有代理的功能,也不参与用户与服务器的通信过程:

用户的 web 客户端只是在进行 DNS 解析的时候通过 DNS 的 CNAME 找到 Traffic Manager,并由 Traffic Manager 根据你的配置完成最终的解析并返回 web 服务的 IP 地址。在这之后,用户的 web 客户端都是直接访问 web 服务器的,直到你设置的 TTL 超时,  web 客户端才会重新进行一次 DNS 解析。所以 Traffic Manager 不是代理或网关,它也看不到 web 客户端与服务器之间的数据传递。

支持的路由策略

用户访问到不同的 web 服务器上呢?当前 Traffic Manger 内置了四种路由策略:

Priority(基于优先级的路由策略) 可按照优先级设置多个从节点(web 服务器),当其中的某个或多个节点失效时,活着的节点中具有最高优先级者对外提供服务。这个策略主要用来提高服务的可用性。

Weighted(基于权重的路由策略) 可以为不同的节点(web 服务器)设置不同的权重。比如服务器1配置高、性能好,就可以设置比较高的权重,这样分配给它的请求就会多些(具体的多少是按照服务器的权重计算出来的)。当然如果其中有服务器离线了,Traffic Manager 就会把负载分配到其它的节点。因此我们也可以使用这种路由策略让服务器逐个的离线并进行升级从而实现渐进式的发布。

Performance(基于性能的路由策略) 提升服务器的响应时间可谓是重中之重,这种策略会根据最小的网络延迟来路由用户的请求。

Geographic(基于地理位置的路由策略) 对于全球化的服务,最好是在不同的地理位置上部署服务器以就近响应用户的请求。Traffic Manager 也支持这样的策略。本文中接下来的 demo 就将演示如何创建一个基于地理位置进行路由的 Traffic Manager 设置。

用户访问的是放在新加坡的主机,香港的用户和全世界其它地方的用户访问的都是放在香港的主机。

配置文件

配置文件开始。在 Azure 的门户网站上新建一个 "Traffic Manager profile"(不太熟悉 Azure 的朋友可以先去申请创建一个免费的 Azure 账户):

名称还要选择正确的路由策略,这里我们选择的 "Geographic" 表示基于地理位置的路由策略。

添加 endpoint

添加放在新加坡的主机(请保证你已经创建了该主机,并且区域选的是 Southeast Asia,同时设置了主机的 DNS 名称):

添加一个位于香港的节点,由于香港的主机会被除了新加坡之外的其它所有地区的用户访问,所以在 Geo-mapping 中设置为 "All(World)" 就可以了(Azure 的 Traffic Manager 服务会保证用户的请求会被解析到正确的节点):

添加后,Traffic Manager 会监控节点的健康状况:

内容:

修改配置后,节点的状态马上就变成 "Online" 了:

自动故障转移的。

添加一个 CNAME 并指向前面创建的 Traffic Manager 服务:demox.traffimanager.net:

  • 用户访问的是放在新加坡的主机
  • 用户和全世界其它地方的用户访问的都是放在香港的主机

登录到一台放置在新加坡的虚拟机(使用云服务的好处是你可以在全世界的任何区域随意的创建虚拟主机!),然后执行 dig 命令:

$ dig demo.filterinto.com +noall +answer

用户访问到的主机,它的 IP 地址为:52.230.11.28。

$ dig demo.filterinto.com +noall +answer

输出中我们也可以看到 DNS 的解析过程为:

eagle.eastasia.cloudapp.azure.com .

负载均衡可以在不同的层级以不同的技术实现,本文介绍的 Traffic Manager 就是在 DNS 层实现。本文选择尽可能简单的 demo 只是为了说明 Traffic Manager 是什么、能够做什么。如果要把它应用到生产中则需要考察并测试更多的细节,具体请参考 Azure 的官方文档。

猜你在找的Azure相关文章