dns负载均衡是什么意思,nginx负载均衡和dns负载均衡

  • 传统思路的局限性
  • CDN是怎么做的?
  • 神奇的解释权机制(SOA)
  • DNS负载均衡的基本原理
  • 总结

当网站的访问量大了就会考虑负载均衡,这也是每一个架构师的基本功了,其基本地位就相当于相声里的说学逗唱,活好不好就看这个了 :)

传统的负载均衡思路是单点的,不管你是硬件的还是软件的基本都是这样的原理,如下图所示:

公司架构师常常提起的DNS负载均衡是个什么鬼?

对于一般的需求来说,这样的架构基本就可以解决问题了,而且维护起来也相对简单,大多数公司也都是这么干的。

传统思路的局限性

就如同上图所示,传统思路也存在非常明显的局限性。

也就是说,网站的响应速度很大程度上局限于负载均衡节点的能力,而且一旦负载均衡节点本身挂掉的话,整个网站就完全瘫痪了。

后端的服务可以水平扩展,但是对于单个节点来说就算你再增大机器的配置也是有极限的,而且这也不符合互联网技术的发展规律。

CDN是怎么做的

作为互联网上承载大部分流量的一大基础设施,CDN对负载分流的解决思路很具有启发性,如下图:

公司架构师常常提起的DNS负载均衡是个什么鬼?

从上图可以看到,用户的访问被分流了,所有的请求不再是聚集到一个节点上,而是被分担在了各个合适的节点上。

这样即使存在单点故障,也仅仅只会影响到一部分用户,况且我们还可以使用其他手段做故障转移。

同样的做法也可以借鉴到传统的 BS 架构中,我们也可以把用户的请求直接分流到不同的服务器上,而不必经过一个统一的节点中转。

这个分流是通过什么做到的呢?

答案就是:DNS

你知道DNS是怎么工作的吗?

大部分人可能天天都用着DNS却不知道它的基本原理,你可能知道我们访问互联网需要查询dns服务器,就是下面的这个玩意

公司架构师常常提起的DNS负载均衡是个什么鬼?

我们只需要问它域名所对应的ip地址就行了。

但事情真的这么简单吗?它是怎么知道这个域名所对应的ip地址呢?

其实dns系统是一个典型的树状架构,上图所示的dns服务器其实应该叫dns缓存查询服务器,它是为了减轻互联网上dns查询的负载所设计的。

如果你的请求没有命中缓存,那么这个缓存服务器就会自己进行一次标准查询,然后再把结果缓存起来,简单来说就是从根服务器开始一级一级的问。

我们以前经常谈到根服务器的重要性其实就体现在这里了,它保留了对所有域名的起始解释权

神奇的解释权机制(SOA)

上面讲到根服务器拥有一切域名的起始解释权,但是如果你去问根服务器它是不会直接告诉你最终答案的。

因为如果它要存储所有的记录,那它也太累了,这个负载和开销是惊人的。

那它会告诉你什么呢?它会告诉你应该去问谁,也就是它授权下一级服务器来解答你的问题。

我们来看下面的拟人化过程:

  1. 我: root, root 告诉我, segmentfault.com 怎么走?
  2. root: 呵呵,你可以去问.com的dns服务器,地址是xxxxxx
  3. 我: .com, .com 告诉我,segmentfault.com 怎么走?
  4. .com: 呵呵,你可以去问segmentfault.com的dns服务器(dnspod之类的),地址是xxxxxx
  5. 我: dnspod, dnspod 告诉我,segmentfault.com 怎么走?
  6. dnspod: 拿着 xxxxxx,走你

公司架构师常常提起的DNS负载均衡是个什么鬼?

DNS负载均衡的基本原理

了解了上述过程,我们得到两个基本结论

  1. dns系统本身是一个分布式的网络,它是相对可靠的,起码比你网站本身可靠的多
  2. dns的最终解释是可以受我们自己控制的

有了这两条结论,剩下的事情就简单了,我们只需要在最终解释的查询结果上做文章就可以了。

简单来说,就是将你的所有服务器地址,按照自己需求制定的频次,返回给用户。

以github.com为例,我们首先获取它的SOA服务器(因为dns缓存查询服务器会缓存结果,如果你直接去查询域名,会每次返回一样的结果),.com的dns域名服务器也是13台,它们是[a-m].gtld-servers.net,我们随便选一台来找找github.com的SOA.如下图:

公司架构师常常提起的DNS负载均衡是个什么鬼?

OK,我们获取了四个SOA服务器 ns[1-4].p16.dynect.net,再随便选一个来问问github.com对应的记录吧,顺便试几次看看最终的ip地址会不会变化

公司架构师常常提起的DNS负载均衡是个什么鬼?

我们这里查询了两次,注意 ANSWER SECTION 部分返回了两个结果,一次是192.30.252.129,一次是192.30.252.128。

这就是利用dns实现了负载均衡,你的最终访问会到达不同的ip地址。

有哪些DNS服务商支持负载均衡呢?

这是一种比较高级的服务,一般域名注册商的dns服务器不会支持,目前我已知支持它的服务商有:

  1. AWS Route 53
  2. NSONE
  3. Dyn
  4. dnspod

其中1和4是我们已经在使用的,效果比较理想。

总结

其实DNS可以玩的花样远不止这些,还可以做故障转移,也可以按地区解析等等。

域名从互联网诞生之初就开始存在了,但是对它的研究以及衍生出来的使用方法才刚刚开始发掘,随着大家对互联网利用的提升,这类技术肯定会越来越多。

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:dandanxi6@qq.com

(0)
上一篇 2023年 5月 21日 下午3:09
下一篇 2023年 5月 21日 下午3:19

相关推荐

  • 中国银行股份有限公司2021年审计报告

    第一节 重要提示 1.1 本年度报告摘要来自年度报告全文。为全面了解本行的经营成果、财务状况及未来发展规划,投资者应当仔细阅读同时刊载于上海证券交易所网站***.cn及本行网站**…

    互联网 2023年 1月 9日
  • 手机imessage短信激活教程

    9102年的今天,大家喜欢用什么方式来发消息聊天呢? 如果你是95后和00后,可能倾向于用QQ。原因无他,因为用微信的人太多了,包括爸妈爷爷奶奶们。我们已经习惯了用微信来发消息、打…

    2023年 5月 27日
  • 原创干货 | 史上最全的大数据学习资源(Awesome Big Data)

    很多人在学习大数据的时候比较迷茫,不知从何学起,也不能够比较系统、全面的了解大数据框架。为此,过往记忆花了一个周末的时间把 Awesome Big Data 近 600 个大数据相…

    2023年 6月 9日
  • cad加载天正打开直接卡死,个别cad文件打开就卡死在天正界面

    在使用cad的过程中,有时会遇到点击保存或另存为时软件卡死的现象,经卸载安装多个版本依然无效。经过本人耐心搜集材料,终于找到了解决办法。 引起此问题的主要原因是新版本cad保存对话…

    2022年 12月 23日
  • 收款语音播报器怎么连接,收款语音播报器怎么连接大音响

    收款语音播报器怎么连接,二维码收款语音播报器怎么申请,在现代快速发展的社会中,移动支付已经成为越来越普遍的收款方式。随着移动支付的普及,越来越多的商户开始采用二维码收款作为主要的支…

    2023年 10月 15日
  • 周二群发给朋友的暖心早安祝福,美好的早安祝福语微信大合集45条

    1、我们边走边微笑,我们边走边感念,最后用自己的记忆,用自己的双手一遍遍地去勾勒青春里的所有。当青春逝去的时候,我们已经发现,我们所经历的生活,已经勾勒出了生命的一份唯美,记忆的一…

    2022年 12月 28日
  • 怎么查看58同城网征婚 58同城怎么查看交友信息

    前面Annie岳给大家分享了一篇免费网站推广的博文,其中里面提到过关于分类信息的推广。今天Annie岳就来给大家整合一下所有的分类信息网站,以供大伙儿参考。注意:此次整合的分类信息…

    2023年 8月 10日
  • 微信公众号的宣传文案怎么写

    现在很多人看到文章,都有一种似曾相识的感觉,因为文章的抄袭率太高,所以导致缺乏原创文章。然而,为了让文章迅速传递,原创文章是事实。但写一篇原创文章并不容易,但也必须确保公共账户文章…

    互联网 2022年 12月 17日
  • 宝妈在家赚钱的十种方法

    世界上最伟大的职业就是全职妈妈,最容易被忽视,不被理解的也是全职妈妈。 “你天天在家带孩子有什么累的“ ”就知道要钱”…… 曾经也有一份好工作的我,在生完孩…

    2023年 3月 13日
  • 家里wifi出现感叹号怎么解决

    当家里的WiFi出现感叹号时,通常表明WiFi连接发生了问题。解决这个问题的方法,首先需要检查路由器的连接状态。如果路由器连接正常,那么就需要检查设备连接的情况。有可能是设备连接出…

    2023年 11月 16日