前置概念
阅读本文前,您可能需要了解如下概念:
产品概述
全局流量管理(Global Traffic Manager),简称GTM,它可以帮助企业实现用户访问应用服务的就近接入、高并发负载均摊、应用服务的健康检查,并能够根据健康检查结果实现故障隔离或流量切换,方便企业灵活快速的构建同城多活和异地容灾服务。全局流量管理
功能简介
功能 | 说明 | 参考文档 |
地址池配置 | 地址池是GTM对应用服务地址(IP或域名)进行管理的功能。一个地址池,代表一组提供相同应用服务,即具备相同运营商或地区属性的IP地址或域名地址。一个GTM实例,可以配置多个地址池,便于实现不同地区的用户访问不同的地址池,并达到就近接入的效果。同时当地址池整体不可用时,可以做备份切换。 | |
访问策略 | 访问策略可以助企业轻松管理全球流量,其能够根据客户设定的流量调度策略,可为不同网络或区域来源的访问用户设置不同的解析响应地址池,并最终实现用户就近访问和故障切换效果。访问策略包含两种访问策略类型,且一个实例只能启用一种访问策略类型。
| |
健康检查 | 健康检查主要是针对地址池里IP地址列表,可以实时监测应用服务的可用性状态,包括:ping监控、tcp监控、http(s)监控。 | |
故障切换 | 指当健康检查结果发现用户访问的主地址池集合出现整体不可用时,系统会自动将用户访问流量切换到备地址集合上,可确保应用服务地址故障时,能够用备地址池集合来响应用户的DNS查询请求,从而实现降低业务中断的风险,保障业务的稳定运行。 GTM为用户输出的核心能力是“故障切换”,具体是指:
| - |
应用场景
应用服务主备容灾
例如应用服务有两个IP地址 1.1.XX.XX
、2.2.XX.XX
。正常情况下,用户访问IP地址 1.1.XX.XX
、当IP地址 1.1.XX.XX 故障后,希望将用户访问流量切换到IP地址 2.2.XX.XX
。
通过GTM,创建两个地址池 Pool A 和 Pool B ,将IP地址 1.1.XX.XX
、2.2.XX.XX
分别添加进两个地址池,并配置健康检查。在访问策略配置中,主地址池集合选择 Pool A、备地址池集合选择 Pool B ,即可以实现应用服务主备IP容灾切换。
应用服务多个IP多活
例如应用服务有三个IP地址 1.1.XX.XX
、2.2.XX.XX
、3.3.XX.XX
,三个IP地址同时向用户服务。如想要实现3个IP地址正常工作时,DNS解析同时解析出3个IP地址。当3个IP地址中某一个地址故障时,将故障的地址从DNS解析列表中暂时删除,不向用户返回,当故障IP地址恢复后,重新添加回DNS解析列表。
通过 GTM ,创建一个地址池Pool A, 包含地址(1.1.XX.XX
、2.2.XX.XX
、3.3.XX.XX
),主地址池集合选择Pool A,并开启并配置健康检查,即可应用服务多个IP多活。
高并发应用服务负载分摊
企业在线上大促活动类似双十一等情况下,都会对业务做临时的扩容,以应对突然增大数倍的用户访问请求。一般来说,会在同区域购买多个SLB实例,期望达到使用不同IP地址进行访问流量卸载的效果。
使用 GTM 时,只需在主地址池集合中将负载均衡策略(地址池)设置为 返回全部地址,由每个地址平均承担用户的访问流量,可以实现多个SLB的负载均衡效果。也可以选择 按权重返回地址 的方式,为每个地址池及每个地址配置不同的权重,使每个地址承担不同权重比例乘积的访问流量。
不同区域访问加速
大型企业或跨国企业一般需要面向全国区域或者全球区域提供网络服务。由于不同地区网络情况不同,网络访问一般会受到距离等因素的影响,因此,企业会选择在几个大区的核心位置建立服务接入点,使不同区域的用户访问各自区域的核心接入点,从而获得最佳的访问体验。
GTM提供两种访问策略方式,均可实现:
如是基于地理位置的访问策略,则能够为不同区域的用户返回指定的地址池集合中的地址,从而实现全球用户的就近接入和访问加速。
如是基于访问延时的访问策略,GTM则能够将终端用户路由到延迟最低的应用服务集群上,从而实现终端用户的访问加速。
产品原理
例如网站服务是www.example.com:
开通GTM实例后,系统自动分配了一个CNAME接入域名gtm12345678.gtm-000.com。
为GTM实例添加3个服务器IP地址1.1.XX.XX、2.2.XX.XX、3.3.XX.XX,并开启健康检查。
将网站服务www.example.comCNAME指向gtm12345678.gtm-000.com.
原理流程图解
原理流程说明
终端向本地递归DNS系统查询应用服务域名www.example.com。
假设本地递归DNS系统没有www.example.com的缓存,那么本地递归DNS会向DNS根服务器发送此域名的DNS查询请求。同时DNS根服务器,会根据查询域名的后缀,向本地递归DNS服务器响应.com所在的DNS服务器。
本地递归DNS收到DNS根响应的.comDNS服务器地址后,会向.comDNS服务器发起www.example.com的域名查询请求。同时.comDNS服务器收到请求,会向本地递归DNS服务器响应example.com所在的DNS服务器,如果域名使用了云解析服务,那么这个DNS服务器就是云解析的DNS服务器。
本地递归DNS收到.comDNS服务器响应的云解析DNS服务器地址后,再次向云解析DNS服务器发起www.example.com查询请求,同时云解析DNS服务器收到DNS查询请求后,在自己的数据库中发现www.example.com通过CNAME指向了域名gtm12345678.gtm-000.com,因此云解析DNS服务器会向本地递归DNS响应gtm12345678.gtm-000.com。
本地递归DNS收到云解析DNS响应的gtm12345678.gtm-000.com域名后,会再次向全局流量管理的DNS服务器发起gtm12345678.gtm-000.com查询,同时全局流量管理在收到请求后,会根据运行机制和预配置策略向本地递归DNS响应最终应用服务的地址。
本地递归DNS服务器将最后一次查询获得的IP地址作为www.example.com的最终地址,返回给终端用户,同时缓存在本地,方便下次用户查询可以直接返回结果。
终端用户收到本地递归DNS服务器响应的IP地址后,直接向应用服务发起网络连接,开始进行业务通信。
产品架构
产品架构图解
产品架构说明
请根据产品架构图来看下文的说明。
GTM系统中的DNS模块,是实现将终端用户访问解析到应用服务的主地址池集合和备地址池集合。其中,设定中国内地区域用户访问主地址池集合的应用服务、境外区域用户访问备地址池集合的应用服务,并且两个地址池集合设定互为主备。
GTM系统中的HeathCheck模块,会从多个地区对地址池内的多个应用服务地址发起健康探测,健康探测可以使用ping、tcp、http(s)三种方式。
当主地址池集合中,有一个应用服务地址出现故障时,HeathCheck模块会准确的检测到异常情况,同时HeathCheck模块会和DNS模块进行交互,最终是通过DNS模块将异常地址从向用户返回的应用服务地址列表中暂时删除;如果HeathCheck模块检测到应用服务的地址恢复正常,则DNS模块会将此地址恢复至应用服务的地址列表中并返回给用户。
假如主地址池集合在出现了地址池集合整体故障的情况,GTM则会根据预先配置的备地址池集合和生效地址池集合的切换策略,将中国内地区域用户的访问流量切换到备地址池集合上“secondaryAddresspoolSet”。反之,如备地址池集合出现整体故障情况,GTM则将境外用户的访问流量切换到主地址池集合上“primaryAddressPoolSet”。
因此,终端用户访问时可以通过全局流量管理系统自动的获取最佳的应用服务,并保障用户访问的连续不中断。
系统架构
全局流量管理是由管控层和解析层两部分组成:
管控层:管控层通过控制台和OpenAPI对外提供服务,主要实现了域名解析数据、配置数据、监控数据、日志数据等的增删改查功能和存储功能。管控层位于【中国内地-华北3(张家口)】。
解析层:解析层通过部署在全球范围内的解析服务器集群对外提供服务,解析层接收来自于管控层分发的域名解析记录数据,主要实现了对域名解析记录数据的查询请求进行应答的功能。解析层在全球主要大洲和地区均有节点覆盖。
加入我们
钉钉群:79530043379