绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
分布式架构之负载均衡
2020-05-25 17:25:20

作为一个毕业一年多的女程序员,今天利用闲暇时间整理了一些干货。供大家了解,有不足的地方,你们也可以补充。

DNS负载均衡

说起DNS,首先想到的是DNS域名解析。

我们知道,数据包采用ip地址在网络中传播,而为了方便用户记忆,我们使用域名来访问网站。我们通过域名来访问之前,首先需要将域名解析成ip地址,这个工作是由DNS完成的。也就是域名服务器。

我们提交的请求不会直接发送给想要访问的网站,而是首先发给域名服务器,他会帮我们把域名解析成ip地址并返回我们,我们收到ip之后才会向该ip发起请求。

如果一个域名指向了多个IP地址,在每次域名解析时,DNS只要选一个返回给用户,就能够实现服务器集群的负载均衡。


具体做法

首先我们的域名指向多个后端服务器(将一个域名解析到多个ip),在设置一个调度策略,接下来的负载均衡完全有DNS服务器来实现。

当用户向我们的域名发起请求时,DNS服务器会自动根据我们之前设定好的策略选择一个合适的IP返回给用户,用户再向该IP发起请求。


调度策略

一般DNS提供商会提供一些策略供我们选择,如随机分配、轮询、根据请求者的地域分配离他近的服务器。


优缺点分析

DNS负载均衡大的优点就是配置简单。服务器集群的调度工作完全由DNS服务器承担,那么我们就可以把精力放在后端服务器上,保证他们的稳定性与吞吐量。而且完全不用担心DNS服务器的性能,即便是使用了轮询策略,它的吞吐率依然卓越。

此外,DNS负载均衡具有较强了扩展性,你完全可以为一个域名解析较多的IP,而且不用担心性能问题。

但是,由于把集群调度权交给了DNS服务器,从而我们没办法随心所欲地控制调度者,没办法定制调度策略。

DNS服务器也没办法了解每台服务器的负载情况,因此没办法实现真正意义上的负载均衡。它和HTTP重定向一样,只不过把所有请求平均分配给后端服务器罢了。

此外,当我们发现某一台后端服务器发生故障时,即使我们立即将该服务器从域名解析中去除,但由于DNS服务器会有缓存,该IP仍然会在DNS中保留一段时间,那么就会导致一部分用户无法正常访问网站。这是一个致命的问题!好在这个问题可以用动态DNS来解决。

动态DNS

动态DNS能够让我们通过程序动态修改DNS服务器中的域名解析。从而当我们的监控程序发现某台服务器挂了之后,能立即通知DNS将其删掉。

综上所述

DNS负载均衡是一种粗犷的负载均衡方法,这里只做介绍,不推荐使用。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

唠唠叨叨负载均衡
创建时间:2020-05-25 14:12:28
唠唠叨叨负载均衡
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~