除了域名解析,DNS 在架构设计中的三大妙用!

开发 网络
在架构设计过程中,DNS除了解析域名,还可以根据用户ip来就近访问服务器、DNS轮询,水平扩展反向代理层及利用DNS实施负载均衡。

一般来说,DNS有什么用?

如上图所示,DNS一般用作域名解析,将域名转化为NG的外网IP,以便于NG将HTTP请求路由给内网的web-server集群。

在架构设计的过程中,DNS还有其他用途吗?

至少还能干这三件事。

其一:用户就近访问。

通过智能DNS技术,可以很容易的实现,用户对所需资源的就近访问。

如上图所示,不同用户访问同一个资源:

  • 电信用户,DNS可以返回电信机房的IP;
  • 联通用户,DNS可以返回联通机房的IP;
  • 教育网用户,DNS可以返回教育网机房的IP;

如此一来,所用用户的访问速度都会加快。

智能DNS技术是CDN以及多机房多活架构中必不可少的部分。

其二:反向代理的水平扩展。

在第3集《延时与吞吐量》的视频中曾经留了一个尾巴:

说Nginx一般是系统的入口,假如Nginx的吞吐量是10W次每秒,google首页的Nginx,要如何抗住100W次每秒的并发呢?

有小伙伴说LVS,有小伙伴说F5,都没错,但这两种本质上都是scale up方案,性能总有极限,治标不治本。

scale out方案的正解方案是:DNS轮询。

如上图所示,在DNS侧,对于同一个域名配置多个nginx的外网ip,每次DNS解析域名请求,轮询返回不同的ip,这样就能实现nginx的水平扩展,达到:1台NG抗10W吞吐,10台NG抗100W吞吐的目的。

其三:web-server的负载均衡。

在反向代理技术出现之前,可以借助“DNS轮询”的功能,将流量均匀分配到不同的web-server上去。这个方案的好处是架构少了一层网络请求,坏处是“DNS轮询”并不能保障后端web-server的可用性。

而反向代理除了能保证负载均衡,同时还兼具保活探测的能力,故在反向代理技术出现后,就不用DNS轮询来做负载均衡了。

稍作总结,在架构设计过程中,DNS除了解析域名,还可以:

  • 其一,智能DNS,根据用户ip来就近访问服务器;
  • 其二,DNS轮询,水平扩展反向代理层;
  • 其三,利用DNS实施负载均衡;

知其然,知其所以然。

思路比结论更重要。

责任编辑:赵宁宁 来源: 架构师之路
相关推荐

2017-05-17 14:51:31

DNS架构负载均衡

2023-11-27 22:55:17

DNS域名解析

2024-09-25 08:15:52

DNS域名解析证书告警

2019-03-18 10:44:41

负载均衡DNSUDP

2021-11-12 09:35:33

网址URLLinux

2019-10-30 05:32:17

网址URLIP地址

2024-11-01 08:30:00

2019-06-12 14:18:31

TCPIP协议DNS

2015-11-06 10:40:55

2022-03-22 07:37:33

DNS域名IP

2010-08-30 16:02:06

CSSclear

2023-10-31 08:10:24

域名域名解析服务器

2012-04-19 16:24:42

2021-06-28 08:26:29

CoreDNS域名

2023-03-09 08:12:08

免登录实Python脚本

2010-05-24 15:35:58

IPv6域名解析

2020-02-26 18:00:12

dig命令Linux域名解析

2021-05-07 15:27:23

架构设计架构开发

2009-06-12 16:07:05

演进式架构设计敏捷开发

2012-07-02 14:47:57

架构敏捷开发
点赞
收藏

51CTO技术栈公众号