[多活] 分布式、多活数据中心如何实现DNS域名解析和负载均衡?

关于双活技术和业界主流方案,应大家要求做了分析和分享(参考历史发文),为了帮助大家进一步理解,特意将重要知识点做了梳理和细化,并整理成文。由于平时工作繁忙,只有利用周末时间写写文章,为了表示对我付出的认可,整理成文的“业界主流数据中心存储双活完全解析”需要收取一些费用,通过这种方式,也希望把自己的心血传递到真正需要的人手中,文章目录如下。

请需要的小伙伴通过原文链接获取。今天的话题将带你从双活数据访问层面,谈谈域名解析和负载均衡。

DNS域名解析是B/S应用架构的一项重要服务,C/S架构应用一般是通过IP地址直接访问服务的。在云计算时代,业务主要通过B/S、分布式、多活的架构提供。然而对于网站运营和服务提供商来说,DNS域名解析的稳定可靠,意味着更好的业务体验,更好更大的访问流量。

随着云计算和分布式系统的发展,DNS在多数据中心、分布式应用架构中负载均衡和故障转移应用中越来越重要,今天我们对DNS概念、应用和原理进行梳理和解析。

DNS是互联网上作为域名和IP地址相互映射的一个分布式数据库。DNS能够使用户更方便的访问网络和应用,而不用去记忆杂乱、繁琐的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析。下面这张图,详细说明了一个DNS域名解析的全过程。

1、通常,在电脑打开浏览器,输入一个域名。比如输入www.163.com,这时电脑会发出一个DNS请求到本地DNS服务器。本地DNS服务器一般是网络接入服务器商提供,比如中国电信,中国移动。

2、查询www.163.com的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询。

3、根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。

4、本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.com域服务器。.com域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。

5、最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

实际上,因特网上的DNS服务器也是按照层次安排的。每一个域名服务器只对域名体系中的一部分进行管辖。根据域名服务器所起的作用,可以把域名服务器划分为根域名服务器、顶级域名服务器、权限域名服务器和本地域名服务器四种不同的类型。

根域名服务器是最高层次的域名服务器,也是最重要的域名服务器。所有的根域名服务器都知道所有的顶级域名服务器的域名和IP地址。不管是哪一个本地域名服务器,若要对因特网上任何一个域名进行解析,只要自己无法解析,就首先求助根域名服务器。所以根域名服务器是最重要的域名服务器。假定所有的根域名服务器都瘫痪了,那么整个DNS系统就无法工作。

我们在配置DNS解析的时候,需要指定DNS解析的TTL(Time To Live)参数,这个参数告诉本地DNS服务器,域名缓存的最长时间。用阿里云解析来举例,阿里云解析默认的TTL是10分钟,10分钟的含义是本地DNS服务器对于域名的缓存时间是10分钟,10分钟之后,本地DNS服务器就会删除这条记录,删除之后,如果有用户访问这个域名,就要重复一遍上述复杂的流程。

如果网站已经进入稳定发展的状态,不会轻易更换IP地址,我们完全可以将TTL设置到协议最大值,即24小时。带来的好处是,让域名解析记录能够更长时间的存放在本地DNS服务器中,以加快所有用户的访问。

分布式、多活数据中心对外提供数据服务时,还会涉及到另外一个参数RTT(Round Trip Time)。分布在物理上A、B隔离两个区域的数据中心同时对外提供服务时,客户的服务请求是由A数据中心,还是由B数据中心响应,这就要看在DNS解析过程中,决定于解析过程中那个访问带来的RTT更小。下面一起通过一个实例来分析下技术原理。

1、首先客户端向其所在运营商的Local DNS发起www.abc.com域名的DNS请求。

2、运营商的Local DNS服务器从RootDNS得知www.abc.com由DNS-CTC、DNS-CNC、DNS-USA1和DNS-USA2来解析,即RootDNS同时返回此4个DNS服务器地址给Local DNS(DNS的工作原理要求返回所有关于请求的记录,在此即返回4个DNS服务器,如果只返回一个DNS而此DNS刚好中断服务了,那么Local DNS只能是解析失败了);

3、Local DNS轮询向这4个DNS服务器发出域名解析的请求,直到返回数据。

4、在此,假如DNS-CTC响应Local DNS的域名解析请求,同时返回2台GTM的地址(本地监听的Web服务)。

5、收到Local DNS请求的GTM首先查询在本地是否有该Local DNS的就近性表项,如果存在则直接给Local DNS返回速度最快的服务器地址。如果不存在,则通知另外一台GTM发起对该Local DNS的查询。

6、两台DNS分别对Local DNS进行Probe。例如GTM-A查询该Local DNS的RTT时间为50ms,而GTM-B查询同一Local DNS的RTT时间为100ms,则此时在两台GTM内都形成了该Local DNS的对应就近性表记录。

7、根据就近原则,Local DNS请求的GTM-A根据系统的就近性表返回相应的Data Center内的Web服务器地址(即1.1.1.1)。

8、Local DNS获得地址后,将该地址返回给用户,到此DNS请求过程结束。

9、用户向www.albc.com(1.1.1.1)网站发起访问。

分布式、多活数据中心中,一个域名对应两个业务IP地址,分别部署在两个数据中心。通过GSLB或DNS实现站点间的访问负载均衡。

GSLB可以采用专用的F5 GTM设备,如果业务量小,也可以采用windows自带的DNS服务器,实现简单负载均衡(轮询),GSLB跨站点负载均衡策略通常有两种。

1. 基于Local DNS请求所在的地理位置。

2. 基于GSLB与Local DNS的RTT最小。

GSLB在整个网络范围内将用户的请求定向到最近的节点(或者区域),主要采用就近性判断,主要的方法包括DNS、应用层重定向、传输层重定向等。然而,SLB大多在一个服务节点范围内,根据设备节点的健康性、当前负载、服务能力、分布等情况将用户的请求分配到一个具体服务节点设备。

未经允许不得转载(声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:net-net@foxmail.com进行举报,并提供相关证据,工作人员会在10个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。):策信智库资讯网 » [多活] 分布式、多活数据中心如何实现DNS域名解析和负载均衡?

赞 (0)
indian school girls porn videos tubexo.mobi school girls xvideo broken marriage vow march 22 full episode thepinoytv.net abot kamay na pangarap episode today افلام سكس هندي arabicpornmovies.com بنات محجبات سكس شاب ينكح اخته arabianporns.com قصص سكس سعودي سكس في الطيارة muarab.net سكس عربى واجنبى girls fucking videos freshpornclips.mobi xxx free download سكس بكارة porndot.info موقع افلام اباحية bengali sexy sex teenpornvideo.mobi chella kutty كسه 24pornos.com سكس قرد مع بنت punjabi randi sex nudevista.pro mia khalifa naked ashima bhalla bigassporntrends.com www.indianxx nude b grade indiananalfuck.com you pron xxx hinde vedio tubeofporn.mobi iwink tv kolkata girls need sex pornhindimovies.com indian xxx vidio saxy bf download pornborn.mobi co xxx