负载均衡 – 有哪种负载均衡算法

我正在研究HTTP的不同负载平衡算法,我刚发现3.随机,循环和加权循环.还有其他选择吗?

谢谢
保罗

最佳答案
HTTP负载均衡器最常见的负载均衡算法是恕我直言:

> Round Robin(有时称为“Next in Loop”).
>加权循环 – 作为循环法,但是一些服务器在整体流量中获得更大的份额.
>随机.
>源IP哈希.根据源IP地址将连接分发到后端服务器.如果Web节点出现故障并停止服务,则分发会发生变化.只要所有服务器都在运行,给定的客户端IP地址将始终转到同一个Web服务器.
> URL哈希.与源IP哈希非常相似,除了在请求的URL上进行散列.在代理缓存之前进行负载平衡时非常有用,因为对给定对象的请求将始终仅用于一个后端缓存.这避免了高速缓存重复,将相同的对象存储在几个/所有高速缓存中,并增加了后端高速缓存的有效容量.
>最少连接,加权最少连接.负载平衡器监视每个服务器的打开连接数,并发送到最不忙的服务器.
>最少的流量,加权最少的流量.负载均衡器监视来自每个服务器的比特率,并发送到具有最少传出流量的服务器.
>最少延迟. Perlbal向后端服务器发出快速HTTP OPTIONS请求,并将请求发送到第一个服务器进行应答.

可以说上述算法不是严格的计算机科学意义上的算法,它们是对常用方法的更一般描述.以下是思科的一篇小文章,其中介绍了algorithms they use in more detail的一些内容.其他供应商的实施情况略有不同.

有一些边缘情况,更奇特的算法是有用的 – 例如视频流可以很好地适应“最少流量”.但一般来说,对于大多数Web应用程序和Web站点,最佳解决方案是:

>共享/分布式会话系统,以便任何webnode都可以回答任何用户请求(即会话cookie等用户会话数据对所有服务器同样可用).
>使用Round Robin(可选加权循环)或随机分布进行负载均衡. Round Robin和Random是简单且有弹性的算法,没有任何“热点”问题,即后端的负载分配在所有情况下都是公平的.

转载注明原文:负载均衡 – 有哪种负载均衡算法 - 代码日志