Nginx负载均衡一致性Hash算法

5 篇文章 0 订阅
4 篇文章 0 订阅
本文介绍了Nginx的三种负载均衡策略:轮询、权重分配和基于ipHash的一致性哈希。轮询策略按来访时间分发,权重策略按服务器性能分配任务,而ipHash策略通过哈希确保同一客户端请求落在同一服务器,以保持单调性。然而,服务器增减会导致映射关系变化,一致性哈希通过虚拟节点解决这一问题,提高集群的动态伸缩性和容灾性。
摘要由CSDN通过智能技术生成

nginx策略分为多个  但普通策略是有缺陷和重大风险的

目录

nginx 轮询策略

nginx权重策略:

ip Hash (哈希算法)

总结  


nginx 轮询策略

根据客户端的来访时间先后进行分发,是默认策略   # 要求各服务器的性能相当,且无法保证单调性

nginx权重策略:

针对服务器运行能力性能高低来区分 根据服务器的权重值尽量按比例分发 (权重越高,承担处理任务越多),且无法保证单调性

  1.  

ip Hash (哈希算法) hash(ip)%n    

#  n为服务器数量   做除法求余,余数为几,就选择第几台服务器

情景:想要获得单调性,前期尽可能使用一台服务器处理同一个客户端的多次请求

当客户端第一次访问a服务器,产生一些类似seeion数据 ,b服务器没有此数据,会发生问题或者使用更多时间资源去获取相同数据。

#问题 当 n的数量出现增加或者宕机 ,  会导致原有的映射关系大量失败,甚至完全无法正常使用

解决方式:一致性哈希算法

 

环形结构 客户端依然使用哈希算法算出值对应放在环形点上 ,把服务器也放在环形结构上,

那 客户端就会寻找它环状前面最近的服务器,  当一台服务器宕掉,后面客户端依旧会寻找最近的服务器,这样会出现均衡性问题

解决方式: 通过计算放置大量的虚拟服务器节点,使服务器的节点分布非常平均,但虚拟机不会分担分发

服务,所以会找到虚拟节点对应的真实服务器,完成分发 ,由于客户端的数量非常多,所以客户端的节点分布也是非常平均,最大的

保证了整个集群的均衡性。

总结  

由于hash算法对于同一个客户端的运算结果必然是相同的,所以,最大化的保障了单调性原则;

由于使用了环形结构,所以在增加或减少服务器时,能尽可能的降低整个环形结构中客户端与服务器的映射关系发生改变导致的影响

,增加了集群的动态伸缩性,使得整个集群的容灾性更强

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值