负载均衡知识总结

Posted 懵懂少年songyou

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡知识总结相关的知识,希望对你有一定的参考价值。

1、知识点简介:

本篇文章主要针对服务端的负载均衡进行总结,负载均衡即通过对http请求的转发,使前端发送的请求到达不同的服务端。从而使服务端的多个服务器均匀的被使用,或者性能好的服务器发挥更大的作用。我们使用的大部分网站服务端都会用负载均衡技术,该技术能够使系统在大流量下保证系统正常运行,并且可以保证系统的响应性不会因为访问量的增加而出现长时间的延迟。负载均衡技术不仅仅是使服务端通过扩展计算机服务器的数量来达到支撑更多的用户使用,而且还能保证某个服务器出现错误或网络等一些未知问题而宕机时,通过将服务转移到正常的服务器上,使系统服务还能正常运转。本篇文章主要总结了负载均衡的实现方式以及负载匀衡相关算法。


2、知识点逻辑图:

负载均衡知识总结

逻辑图为百度脑图,以下为原图连接:

负载均衡图:

http://naotu.baidu.com/file/8bc896545ae83c840b477008dd603513?token=16c6129369c0490f

负载均衡算法图:

http://naotu.baidu.com/file/b05c7d0d61ba409ecc6f3049814f0f97?token=8adcb5d0c9e7ccf4



3、知识点总结:

3.1、负债均衡实现方式主要有三种:基于DNS的负载均衡基于硬件的负载均衡基于软件的负载均衡

3.1.1、基于DNS的负载均衡

实现了按照「就近原则」将请求分流。

优点:配置简单、实现成本非常低、无需额外的开发和维护工作。

缺点:当配置修改后,生效不及时,DNS一般会有多级缓存。由于缓存的原因,会导致IP变更不及时,从而影响负载均衡的效果。使用DNS做负载均衡的话,大多是基于地域或者干脆直接做IP轮询,没有更高级的路由策略。

3.1.2、基于硬件的负载均衡

简单的理解成类似于网络交换机的东西,完全通过硬件来抗压力,每秒能处理的请求数达到百万级,即 几百万/秒 的负载。价格也就非常非常贵了,十几万到上百万人民币都有。

优点:性能强大、负载均衡算法支持很多灵活的策略、具有防火墙的安全功能

缺点:贵。

3.1.3、基于软件的负载均衡:主要分为4层协议的负载均衡和7层协议的负载均衡。

软件负载均衡是指使用软件的方式来分发和均衡流量。软件负载均衡,分为7层协议 和 4层协议。

优点:无需额外采购

缺点:需要投入技术

互联网公司中用得最多的一种方式。

a)、4层协议的负载均衡实现方式:

网络协议有七层,基于第四层传输层来做流量分发的方案称为4层负载均衡,例如 LVS

性能可以达到几十万/秒 的处理量。

b)、7层协议的负载均衡实现方式:

而基于第七层应用层来做流量分发的称为7层负载均衡,例如 nginx于7层的负载均衡处理量一般只在 几万/秒 。



3.2、负载均衡算法:负载均衡实现的策略包括轮询策略负载度策略响应策略哈希策略

3.2.1、轮询策略该策略包括如下几个实现机制顺序轮询随机轮询权重轮询

a)、顺序轮询:按照顺序依次转发到后端服务器,均衡的将请求分发到各个服务器中。该策略的缺点是,如果服务器的配置不同,则无法突出性能好的机器的作用。

b)、随机轮询:该机制是将请求随机的分发到后端的不同服务器上。同样该机制缺点也是无视服务器的性能差异。

c)、权重轮询:考虑到不同的服务器配置不同、性能不同,因此设置了该策略。

该策略指给每台后端服务设定一个权重值,比如性能高的服务器权重高一些,性能低的服务器给的权重低一些,这样设置的话,分配流量的时候,给权重高的更多流量。

3.2.2、负载度策略负载度策略是指当「负载均衡器」往后端转发流量的时候,会先去评估后端每台服务器的负载压力情况,对于压力比较大的后端服务器转发的请求就少一些,对于压力比较小的后端服务器可以多转发一些请求给它。

缺点:这个「负载均衡器」除了转发请求以外,还需要采集 连接数、请求数、CPU负载指标、IO负载指标等等,通过对这些指标进行计算和对比,判断出哪一台后端服务器的负载压力较大。增加了「负载均衡器」的实现难度和维护成本。

3.2.3、响应策略:响应策略是指,当用户请求过来的时候,「负载均衡器」会优先将请求转发给当前时刻响应最快的后端服务器。

需要「负载均衡器」不停的去统计每一台后端服务器对请求的处理速度了,比如一分钟统计一次,生成一个后端服务器处理速度的排行榜。然后「负载均衡器」根据这个排行榜去转发服务。

缺点:统计耗费性能、增加实现难度、增加维护成本。

3.2.4、哈希策略Hash策略也比较好理解,就是将请求中的某个信息进行hash计算,然后根据后端服务器台数取模,得到一个值,算出相同值的请求就被转发到同一台后端服务器中。

常用于保证同一个IP来源或者同一个用户永远会被送到同一个后端服务器上。用于处理缓存、会话等功能的时候特别好用。




本人独立开发的小程序已上线,如有兴趣可扫码进入。



以上是关于负载均衡知识总结的主要内容,如果未能解决你的问题,请参考以下文章

架构设计:负载均衡层设计方案之负载均衡技术总结篇

常见负载均衡算法分析

负载均衡知识

负载均衡总结(四层负载与七层负载的区别)

linux负载均衡总结性说明(四层负载/七层负载)

负载均衡的基础知识