@dingzg1993@163.com
上一篇介绍了负载均衡的内容和分类,这篇文章主要说明一下一些常用的负载均衡算法。
在实际的应用过程中,往往不会在不管服务器是否满载或者宕机让客户端的请求平均的被分配给内部的各个服务器来处理。一般会让配置更高的机器接受更多的服务请求,一台处理服务请求较少的服务器能分配到更多的服务请求,出现故障的服务器将不再接受服务请求直至故障恢复等等。
之所以要采用负载均衡的算法或者策略,就是为了让多个设备在一起共同更好的完成任务,避免或则消除网络负载分布不均、数据流量拥挤反应时间过长的瓶颈。
负载算法
解决后端系统的承载能力,,一般经常使用的有两种方法,
1)手动配置
对于中小系统而言,手动配置是最方便有效的也是最稳定的方式。因为管理人员知道自己后端服务器的参数配置,部署的服务,了解其大概的性能和承载能力,所以在配置的时候,可以预先分配好最大承载压力。
比如,某nginx的配置如下:
upstream simplemain.com {
server 192.168.1.100:8080 weight=30;
server 192.168.1.101:8080 weight=70;
}
上述的配置的含义即有两台后端的服务器,一台的性能明显优于另外一台,更强的,我们就给他70%的压力;弱一点的,我们就给他30%的压力。这样,nginx就会把更多的压力分配给第二台。
这种方式配置简单,而且很稳定,基本不会产生分配的抖动。不过,带来的问题就是分配很固定,不能动态调整。如果你的后端服务