代码之家  ›  专栏  ›  技术社区  ›  Jxadro

0.8磅。有关loadbalancersettings.consistenthashlb的详细信息

  •  2
  • Jxadro  · 技术社区  · 7 年前

    有人能提供更多关于这个负载平衡算法如何工作的细节或例子吗?

    https://istio.io/docs/reference/config/istio.networking.v1alpha3/#LoadBalancerSettings.ConsistentHashLB

    基于一致哈希(ketama hash)的偶数负载负载均衡 连接池更改时的分发/重新分发。这个 负载平衡策略仅适用于基于http的连接。一 用户指定的http头用作具有xxhash哈希的密钥。

    1 回复  |  直到 7 年前
        1
  •  1
  •   Andy    7 年前

    这个 LoadBalancerSettings.ConsistentHashLB 旗子是为特使配置的,在 Envoy's Load Balancing Docs :

    环/模散列负载平衡器实现对上游主机的一致散列。该算法基于将所有主机映射到一个圆上,使得主机集中主机的添加或删除更改仅影响1/n请求。这种技术也被称为Ketama散列。

    它是一种散列算法,可以减少从特使的平衡池中添加和删除服务器(例如 VirtualService )

    如果没有这样的算法,将单个服务器添加到池中 causes hashes to map to different servers :

    我们编写了ketama来替换memcached客户端如何将密钥映射到服务器…每当我们从池中添加或删除服务器时,所有的 散列到不同的服务器,有效地清除了整个缓存。


    再次返回ISTIO-特使的文件注意:

    只有在使用指定要哈希的值的协议路由时,一致哈希负载平衡器才有效。

    这意味着-指定要从中生成哈希的头。从 Istio docs :

    httpheader string必需。将用于获取哈希密钥的http请求头的名称。如果请求头不存在,负载平衡器将使用随机数作为散列,从而有效地使负载平衡策略随机。