负载均衡知识总结
Posted 懵懂少年songyou
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了负载均衡知识总结相关的知识,希望对你有一定的参考价值。
1、知识点简介:
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来源或者同一个用户永远会被送到同一个后端服务器上。用于处理缓存、会话等功能的时候特别好用。
本人独立开发的小程序已上线,如有兴趣可扫码进入。
以上是关于负载均衡知识总结的主要内容,如果未能解决你的问题,请参考以下文章