产品原理

全局流量管理(GTM)支持用户就近接入、高并发负载均衡、健康检查与故障切换,可以帮助企业在短时间内构建同城多活与异地灾备的容灾架构。同时GTM支持管理阿里云和非阿里云IP地址,能够方便企业客户快速构建混合云应用的灾备。

GTM属于DNS级别的服务,使用DNS向用户返回特定的服务地址,然后客户端用户直接连接到服务地址。所以GTM本身并不是代理或网关设备,也不是应用接入服务,因此看不到客户端用户与应用服务之间网络流量。

开通GTM产品实例后,系统会自动分配一个CNAME接入域名,所以需要将用户访问的业务域名CNAME至全局流量管理的实例域名,才能最终实现对应用服务进行容灾、智能接入。

产品原理

例如网站服务是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地址后,直接向应用服务发起网络连接,开始进行业务通信。

产品架构

产品架构图解

image.png

产品架构说明

请根据产品架构图来看下文的说明

  • GTM系统中的DNS模块,是实现将终端用户访问解析到应用服务的主地址池集合和备地址池集合。其中,设定中国内地区域用户访问主地址池集合的应用服务、境外区域用户访问备地址池集合的应用服务,并且两个地址池集合设定互为主备。

  • GTM系统中的HeathCheck模块,会从多个地区对地址池内的多个应用服务地址发起健康探测,健康探测可以使用ping、tcp、http(s)三种方式。

  • 当主地址池集合中,有一个应用服务地址出现故障时,HeathCheck模块会准确的检测到异常情况,同时HeathCheck模块会和DNS模块进行交互,最终是通过DNS模块将异常地址从向用户返回的应用服务地址列表中暂时删除;如果HeathCheck模块检测到应用服务的地址恢复正常,则DNS模块会将此地址恢复至应用服务的地址列表中并返回给用户。

  • 假如主地址池集合在出现了地址池集合整体故障的情况,GTM则会根据预先配置的备地址池集合和生效地址池集合的切换策略,将中国内地区域用户的访问流量切换到备地址池集合上“secondaryAddresspoolSet”。反之,如备地址池集合出现整体故障情况,GTM则将境外用户的访问流量切换到主地址池集合上“primaryAddressPoolSet”。

因此,终端用户访问时可以通过全局流量管理系统自动的获取最佳的应用服务,并保障用户访问的连续不中断。