赞
踩
负载均衡器支持以下负载均衡算法:
1. 轮询(Round-robin)
2. 一致性哈希(Consistent Hashing)
3. 最少连接(Least Connections)
4. 延迟(Latency)
这些算法仅在使用upstream实体时可用,详见高级负载均衡。
注意:对于所有这些算法,重要的是要了解如何设置每个后端的权重和端口。
轮询算法将以加权方式进行。它在结果上与基于DNS的负载均衡相同,但由于它是一个upstream实体,因此在这种情况下还提供了健康检查和断路器的附加功能。
选择此算法时,请考虑以下因素:
使用一致性哈希算法时,将使用可配置的客户端输入来计算哈希值。然后,该哈希值将与特定的后端服务器相关联。
一个常见的例子是使用消费者作为哈希输入。由于该ID对于来自该用户的每个请求都是相同的,因此它将确保相同的用户始终由同一个后端服务器处理。这将允许在后端进行缓存优化,因为每个服务器仅为用户的一个固定子集提供服务,并且因此可以改善其与用户相关数据的缓存命中率。
这个算法实现了ketama原则,以最大化哈希的稳定性,并在已知后端列表发生变化时最小化一致性丢失。
在使用一致性哈希算法时,哈希的输入可以是none、consumer、ip、header或cookie。当设置为none时,将使用轮询方案,并禁用哈希。一致性哈希算法支持主要和备用哈希属性;如果主要哈希失败(例如,如果主要哈希设置为consumer,但未进行消费者身份验证),则使用备用属性。这最大化了upstream 缓存命中。
可支持的哈希属性如下:
一致性哈希负载均衡器旨在同时适用于单个节点和集群。在使用基于哈希的算法时,重要的是所有节点都构建相同的负载均衡器布局,以确保它们的工作完全相同。为了实现这一点,负载均衡器必须以确定性的方式构建。
在选择这个算法时,考虑以下几点:
该算法会跟踪每个后端正在处理的请求数量。权重用于计算每个后端的“连接容量”。请求将被路由到剩余容量最高的后端。换句话说,该算法会根据后端的连接容量来选择路由请求。
在选择这个算法时,考虑以下几点:
延迟算法基于峰值EWMA(指数加权移动平均),确保负载均衡器根据最低的延迟(upstream_response_time)选择后端。所使用的延迟指标是完整的请求周期,从TCP连接到响应体的时间。由于它是一个移动平均值,这些指标会随着时间的推移而“衰减”。换句话说,旧的延迟数据在计算中会逐渐减少。
权重将不会被考虑在内。
在选择这个算法时,考虑以下几点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。