前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >除了域名解析,DNS在架构设计中的三大妙用! | 架构师之路(12)

除了域名解析,DNS在架构设计中的三大妙用! | 架构师之路(12)

作者头像
架构师之路
发布2024-12-24 13:00:49
发布2024-12-24 13:00:49
790
举报
文章被收录于专栏:架构师之路架构师之路

《架构师之路:架构设计中的100个知识点》 12.DNS在架构设计中的三大妙用

一般来说,DNS有什么用?

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

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

至少还能干这三件事。

其一:用户就近访问。

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

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

1. 电信用户,DNS可以返回电信机房的IP;

2. 联通用户,DNS可以返回联通机房的IP;

3. 教育网用户,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实施负载均衡;

知其然,知其所以然。

思路比结论更重要。

补充阅读材料

https://www.cloudflare-cn.com/learning/dns/what-is-dns/

简图:DNS解析全流程

不少童鞋说,补充阅读材料总放英文文档,这次满足你,中文的好资料来了:《DNS的来龙去脉》,5分钟搞定。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-11-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 架构师之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档