利用dns解析来实现网站的负载均衡

news/2024/5/10 15:47:02/文章来源:https://blog.csdn.net/p312011150/article/details/82979787

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

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

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

传统思路的局限性

就如同上图所示,传统思路也存在非常明显的局限性。也就是网站的响应速度很大程度上局限于负载均衡节点的能力,而且一旦负载均衡节点本身挂掉的话,整个网站就完全瘫痪了。后端的服务可以水平扩展,但是对于单个节点来说就算你再增大机器的配置也是有极限的,而且这也不符合互联网技术的发展规律。

CDN是怎么做的

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

从上图可以看到,用户的访问被分流了,所有的请求不再是聚集到一个节点上,而是被分担在了各个合适的节点上,这样即使存在单点故障,也仅仅只会影响到一部分用户,况且我们还可以使用其他手段做故障转移。

同样的做法也可以借鉴到传统的BS架构中,我们也可以把用户的请求直接分流到不同的服务器上,而不必经过一个统一的节点中转。这个分流是通过什么做到的呢?答案就是 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负载均衡的基本原理

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

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

有了这两条结论,剩下的事情就简单了,我们只需要在最终解释的查询结果上做文章就可以了。简单来说,就是将你的所有服务器地址,按照自己需求制定的频次,返回给用户。

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

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

我们这里查询了两次,注意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可以玩的花样远不止这些,还可以做故障转移,也可以按地区解析等等。域名从互联网诞生之初就开始存在了,但是对它的研究以及衍生出来的使用方法才刚刚开始发掘,随着大家对互联网利用的提升,这类技术肯定会越来越多。

--------------------- 本文来自 waveclouds 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/waveclouds/article/details/78965978?utm_source=copy

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_733766.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌搜关键字找网站漏洞合集

天前谷歌地址 https://g.alexyang.me/到GoogLe,搜索一些关键字,edit.asp?韩国肉鸡为多,多数为MSSQL数据库!2,到Google,site:cq.cninurl:asp3,利用挖掘鸡和一个ASP木马.文件名是login.asp路径组是/manage/关键词是went.asp用oror来登陆4,这个应该N多人都搞过吧。。关键字&#…

网站信息量大,该采用分页式设计还是瀑布流滚动设计?

当页面内容信息很多时,设计上应该使用分页,还是 瀑布流 无限滚动的方式呢?今天这篇好文详细分析了各大信息流网站(谷歌、Pinterest、淘宝)的做法,列举了这两种方式的优缺点和适用场景。一篇精悍简练的干货文…

前端开发需要掌握的SEO的知识点

SEO 工作的目的   seo 的工作目的是为了让网站更利于让各大搜索引擎抓取和收录,增加产品的曝光率。 1. title description keywords 标签设置 2. h1-h6 img的alt a 标签的 rel"nofollow" 3. 建立 robots.txt 文件 4. 建立网站的 sitemap 地图…

4月4日网站变灰色的效果是怎么实现的?

4月4日时,很多网站包括主页和内容(包括图片、按钮等)也都已经变成了灰色。当天我打开的csdn、人人视频都全部变为了灰色。 我当时第一想法是难道把这些图片都换了一遍吗???但是成本未免太高,且可…

iframe嵌入其他网站,如何自适应高度

终于有一周时间,工作不那么忙了,腾出手来总结下工作过程中学到的知识。 每天遇到新问题,解决新问题,但是却很少有时间去仔细研究下,或者总结下。攒的多了,就得从头捋一遍。 说下iframe自适应高度&#xf…

如何将 arXiv 网站中的文献导入成 endnote 格式或者其它你想要的格式

arXiv 是发布论文预印本的平台,现在很多自然科学的论文,特别是计算机科学的论文,都是先发表到arXiv 网站,当我们想引用的时候,发现用Endnote 等软件检索不到。那么如何将arXiv 导出为endnote 格式 或者其他你想要的格式…

发布网站报错

发布网站时提示以下错误 解决方法: 1.重新安装IIS,将里面的所有子节点都打勾。 2.在C:\Windows\Microsoft.NET\Framework64\v4.0.30319路径下添加文件夹Temporary ASP.NET Files。 3.修改IIS管理器的应用程序池的托管通道为“经典”。 转载于:https://ww…

22个免费的UI界面设计工具、资源及网站

1.原型界面制作工具Lumzy 官方地址:http://www.lumzy.com/ Lumzy是一个网站应用和原型界面制作工具。使用Lumzy,您可以轻松创建UI模型并即时发送到客户电脑中。 Lumzy还具有团队协作编辑工具。 2.在线工具Mockingbird 官方地址:https://gomo…

(PHP开发)thinkphp5 换网站图标icon无法显示问题

选择自己喜欢的图片(jpg、png都行) 前往在线生成icon生成网站: https://www.bejson.com/ui/icomaker/ 将选择的图片生成图标,然后将图标放到public目录下 修改视图文件,将图标路径换成相对路径即可

[转] Optimizely:在线网站A/B测试平台

Optimizely:在线网站A/B测试平台是一家提供 A/B 测试服务的公司。A/B 测试能够对比不同版本的设计,选取更吸引用户眼球的那一款,从而带来更为优化的个人体验。让网站所有者易于对不同版本的设计和内容进行测试。 该公司的客户现已突破7000家,这些客户完成了超过50万…

精挑细选 8款HTML5/jQuery应用助网站走向高上大

http://www.html5tricks.com/8-html5-jquery-app-website.html 在WEB3.0的时代,我们的网站不仅要实现实用价值,更要为用户设计优秀的用户体验。jQuery是一个不错的JS框架,结合目前最新的HTML5技术,我们可以将自己的网站脱胎换骨&a…

想成为程序猿?28个在线学习网站让你变身齐天大圣!

无论是考虑换工作成为一个全职的程序猿,还是试图搭建一个网站,亦或是想要掌握更多的技能,总之现在越来越多的人都开始学习如何编程。虽然编程不一定适合所有人,但是对相关的知识多深入了解一下总归是有一些好处的。 在正式介绍这些…

学习新技能的37个最佳网站

忘了过于褒奖的学校、整天呆在拥挤的教室而效果却差得可怜。这些网站和应用涵盖了科学、艺术和技术的无数话题。它们可以教会你实践练习任何技能,从制作豆沙到用 node.js 开发 app,而且它们都是免费的。你绝对没有任何理由不去掌握一个新技能、拓展你的知…

Asp.net MVC4 +EF6开发的个人网站源码

http://www.open-open.com/lib/view/open1453452045011.html 本项目是我去年利用业余时间开发的,采用的是asp.net mvc 4 EF6三层架构,适合新手进行学习,高手就没有什么价值了,可以直接跳过。 源码和数据库下载: http:/…

keepalived 配置网站集群 nginx

2019独角兽企业重金招聘Python工程师标准>>> keepalived 配置网站集群 nginx 博客分类: java 其实个人认为keepalived就是一个选择器,帮你选在哪天服务器在用,比如我们现在有两台服务器作为集群的两个服务器,当然我们公…

RDoc帮助你生成静态网站,你只需要写Markdown

RDoc 是一个文档生成工具,用于生成文档网站或简单的博客网站。简单到你只需写 Markdown 文件就可以帮助你生成网站。同时可以方便的集成到你的项目工程中。 官方网站开源Github下图官方网站,是 rdoc 生成的: 基于React的快速静态站点生成器&a…

# 检测 鼠标是否右击_网站是不是被挂黑链,网站是不是被挂黑链的检测及避免方法...

做网站关键词排名也有一段时间了,对网站排名的主要因素及其他的一些因素了解得比较全面,今天搜索互联简要谈一下网站是否被挂黑链的方法,之所以有必要阐述一下,因为黑链市场还是存在的,各位站长相比也经常看到一些出售…

Thinkpad安装linux无法上网,修改合上本本时的动作 - 在ThinkPad上安装Ubuntu的全过程详解_Linux教程_Linux公社-Linux系统门户网站...

修改合上本本时的动作Ubuntu在你合上本本的屏幕时的默认动作竟然是关闭屏幕而不是待机,这个让人觉得挺蹊跷的。修改 /etc/acpi/events/lidbtn,把其中的action/etc/acpi/lid.sh改成 action/etc/acpi/sleep.sh sleep安装TPB,为本本增加OSDsudo …

ubuntu下零基础建站之python基础环境搭建

这篇说的是 ubuntu下 python 基础环境 python2.7(为什么是2.7而不是3? tornado 对2.7支持比较好,还有很多包也是支持2.7) 1. 输入python 发现不存在 有python3 python3可以。装下python2 2. apt install python (默认python就是2.…

html颜色自定义器,Color Changer插件,谷歌浏览器夜间模式,网站颜色自定义更改工具...

Color Changer插件,是一款非常适合设计师以及普通用户使用的网站颜色自定义更换工具,它提供了一个强大的调色板,能让我们对谷歌浏览器中的任意网站修改背景色、链接颜色、文本字样颜色。Change website colors to your liking.下载Color Chan…