负载均衡—致性hash

Posted IT网络民工

tags:

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

负载均衡高可用

提起负载均衡,大家一定会想到F5/Netscale/深信服等厂商。硬件负载均衡设备性能低,采购成本高,通常适用于业务量小的土豪级别企业使用。随着企业规模不断扩大业务量成倍增长,硬件负载的横向扩展能力局限性突出。在当今IT互联网拥抱开源的大环境下,企业可以有多种开源的负载均衡方案,比如有lvs/nginx/haproxy。 同时为了提高业务的连续高可用,我们在部署网络和业务时通常都会考虑高可靠性技术,开源负载均衡高可用方案通常有keepalive/ecmp两种。

  • Keepalive:基于VRRP虚拟冗余路由协议,可以主备或者主主,适用于小规模场景,在大规模网络流量场景下不利于扩展。


  • 如上图,我们可以利用三层交换机与服务器之间跑ospf协议实现负载均衡场景应用,当一台服务器故障后,流量会在剩余服务器上分摊,当业务流量规模增长时,只需在增加服务器即可,负载横向扩展非常方便。

    ECMP 一致性hash
  • 问题:在ECMP场景下,当其中一条链路故障时,为保证业务不中断,对当前所有流量重新进行HASH计算。将所有流量重新分布到正常工作的链路上,这样就有可能导致原来HASH的路径发生变化,同一用户的请求可能被发送到不同的服务器,大大影响了那些需要会话保持的业务。

  • 解决方法:为了保持业务的连续性,当链路发生故障时只对故障链路上的流量进行重新HASH计算,对正常链路上的流量不产生影响,因此我们需要采用ECMP负载分担一致性机制来解决此问题。

    网络设备配置一致性Hash

    华为交换机配置

  • load-balance ecmp stateful enable

    华三交换机配置

  • ecmp mode enhanced

    cisco交换机配置

  • hardware profile ecmp resilient

    注意:以上常见网络设备厂家并不是所有产品和版本都支持一致性hash,在选型时需要注意查看产品功能介绍,建议直接咨询对应厂商。

以上是关于负载均衡—致性hash的主要内容,如果未能解决你的问题,请参考以下文章

面试必问的一致性Hash在负载均衡中的应用

nginx 负载均衡之一致性hash,普通hash

负载均衡—致性hash

一致性hash算法--负载均衡

2016 -Nginx的负载均衡 - 一致性哈希 (Consistent Hash)

负载均衡-基础-一致性哈希算法及java实现