负载均衡讲解 (通俗易懂版)

一、负载均衡的产生背景

互联网早期用户量较少,业务需求比较简单,因此支撑整个软件业务也只需要一个高配的服务器 即可,这种软件架构也就被称为“单体架构”。如下图:

但是随着用户的增加与请求量增加,单体架构会有两个问题!

1.软件性能会下降,访问延迟越来越高;

2.容易出现单点故障,出现一个问题之后会导致整个应用不可用;

为了解决这个问题呢,我们引用了集群化的部署架构,就是把一个软件同时部署在多个服务器上。如下图:

但是架构变化带来了两个问题:

1.请求如何均匀的分发到多台目标服务器上?

2.如何检测目标服务器是否宕机,如果宕机则不向宕机服务器发起请求?

因此为了解决这两个问题,我们才引入了负载均衡的设计。

负载均衡的目的是为了让客户的请求合理的分发到多台服务器上。由于请求被多个节点的分发,使得服务器新能得到提升。

二、如何去实现负载均衡?

1.基于DNS实现负载均衡                 

如下图:

DNS(域名系统)

实现方式:在DNS服务器上针对某个域名做多个IP映射;

工作原理:用户会访问DNS服务器解析域名,得到一个IP地址(随机),再进行对应访问;

优点:配置简单,成本低,无需额外开发与维护;

缺点:多级缓存,去修改DNS配置时,会因为缓存而导致IP变更不及时,从而影响负载均衡效果;

2.基于硬件实现负载均衡

硬件负载是商业化的产品,一般用于大型银行、政府、电信等企业。一般不接触,这里就不多讲了。

3.软件负载均衡

常见的软件负载均衡技术有Nginx、LVS、HAProxy等,目前互联网企业绝大部分采用的都是软件负载均衡,主要的原因是:1.免费,企业不需要投入较高的硬件成本。2.开源,企业可以基于自己对负载均衡的需求做二次开发,提高灵活性。

三、负载均衡作用范围

负载均衡作用再网络通信层面,来实现网络分发,我们可以再网络层上去做请求分发处理,根据分层的特性,基于OSI七层参考模型还可以分为:

二层负载:mac地址进行负载

三层负载:IP地址进行负载

四层负载:软件进行负载,比如Nginx

七层负载:http等进行负载

四、负载均衡常用算法

1.轮询算法。如下图:

2.随机算法

就如同古时候皇上翻牌,都是随机。

3.hash算法

对具有相同的hash码的请求,永远发送到同一台目标节点上。

4.最小连接数算法

根据请求少的节点,将会获得更多的求情。

--------以上就是我给大家简单梳理的负载均衡啦❤--------

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值