中国建设部网站官网,安庆经济开发区人才网,长沙官网seo技术,大山子网站建设静态负载均衡
轮询
将请求按顺序轮流地分配到每个节点上#xff0c;不关心每个节点实际的连接数和当前的系统负载。
优点#xff1a;简单高效#xff0c;易于水平扩展#xff0c;每个节点满足字面意义上的均衡#xff1b;
缺点#xff1a;没有考虑机器的性能问题不关心每个节点实际的连接数和当前的系统负载。
优点简单高效易于水平扩展每个节点满足字面意义上的均衡
缺点没有考虑机器的性能问题根据木桶最短木板理论集群性能瓶颈更多的会受性能差的服务器影响。
随机
将请求随机分配到各个节点。由概率统计理论得知随着客户端调用服务端的次数增多其实际效果越来越接近于平均分配也就是轮询的结果。
优缺点和轮询相似。
加权随机
与加权轮询法一样加权随机法也根据后端机器的配置系统的负载分配不同的权重。不同的是它是按照权重随机请求后端服务器而非顺序。
加权轮询
不同的后端服务器可能机器的配置和当前系统的负载并不相同因此它们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重让其处理更多的请而配置低、负载高的机器给其分配较低的权重降低其系统负载加权轮询能很好地处理这一问题并将请求顺序且按照权重分配到后端。
加权轮询算法要生成一个服务器序列该序列中包含n个服务器。n是所有服务器的权重之和。在该序列中每个服务器的出现的次数等于其权重值。并且生成的序列中服务器的分布应该尽可能的均匀。比如序列{a, a, a, a, a, b, c}中前五个请求都会分配给服务器a这就是一种不均匀的分配方法更好的序列应该是{a, a, b, a, c, a, a}。
优点可以将不同机器的性能问题纳入到考量范围集群性能最优最大化
缺点生产环境复杂多变服务器抗压能力也无法精确估算静态算法导致无法实时动态调整节点权重只能粗糙优化。
IP-Hash
源地址哈希的思想是根据客户端的IP地址通过哈希函数计算得到一个数值用该数值对服务器节点数进行取模得到的结果便是要访问节点序号。采用源地址哈希法进行负载均衡同一IP地址的客户端当后端服务器列表不变时它每次都会落到到同一台服务器进行访问。
优点相同的IP每次落在同一个节点可以人为干预客户端请求方向例如灰度发布
缺点如果某个节点出现故障会导致这个节点上的客户端无法使用无法保证高可用。当某一用户成为热点用户那么会有巨大的流量涌向这个节点导致冷热分布不均衡无法有效利用起集群的性能。所以当热点事件出现时一般会将源地址哈希法切换成轮询法。
一致性Hash
上面的几种静态负载均衡算法都存在一个缺点那就是水平扩充比较麻烦比如有缓存存在的情况如果增加了服务器那么以前已经存在的缓存就不会命中了比如IP-Hash算法实现的所以就需要一致性Hash这样可以保证缓存数据迁移的数据量不是很大
动态负载均衡
最小连接法
根据每个节点当前的连接情况动态地选取其中当前积压连接数最少的一个节点处理当前请求尽可能地提高后端服务的利用效率将请求合理地分流到每一台服务器。俗称闲的人不能闲着大家一起动起来。
优点动态根据节点状况实时变化
缺点提高了复杂度每次连接断开需要进行计数
实现将连接数的倒数当权重值。
最快响应法
根据请求的响应时间来动态调整每个节点的权重将响应速度快的服务节点分配更多的请求响应速度慢的服务节点分配更少的请求俗称能者多劳扶贫救弱。
优点动态实时变化控制的粒度更细跟灵敏
缺点复杂度更高每次需要计算请求的响应速度
实现可以根据响应时间进行打分计算权重。
观察模式法
观察者模式是综合了最小连接数和最快响应度同时考量这两个指标数进行一个权重的分配。