负载均衡的5种算法,你了解几种? - Go语言中文社区

负载均衡的5种算法,你了解几种?


 

我们平常使用的F5,LVS,HAproxy,nginx等负载均衡软件或设备,不管是基于硬件负载,还是基于软件的负载,其负载均衡的算法都是一样的。主要有以下几种:

一、轮询( Round Robin,RR )

所有请求被依次分发到每台应用服务器上,即每台服务器需要处理的请求数目都相同,适合于所有服务器硬件都相同的场景。

负载均衡的5种算法,你了解几种?

二、加权轮询( Weighted Round Robin, WRR)

根据应用服务器硬件性能的情况,在轮询的基础上,按照配置的权重将请求分发到每个服务器,高性能的服务器能分配更多请求。

负载均衡的5种算法,你了解几种?

三、随机( Random )

请求被随机分配到各个应用服务器,在许多场合下,这种方案都很简单实用,因为好的随机数本身就很均衡。即使应用服务器硬件配置不同,也可以使用加权随机算法。

四、最少连接(Least Connections)

记录每个应用服务器正在处理的连接数(请求数),将新到的请求分发到最少连接的服务器上,应该说,这是很符合负载均衡定义的算法。同样,最少连接算法也可以实现加权最少连接。

五、源地址散列( Source Hashing )

根据请求来源的IP地址进行Hash计算,得到应用服务器,这样来自同一个IP地址的请求总在同一个服务器上处理,该请求的上下文信息可以存储在这台服务器上,在一个会话周期内重复使用,从而实现会话黏滞。

版权声明:本文来源51CTO,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:http://developer.51cto.com/art/201912/608437.htm
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-16 23:16:19
  • 阅读 ( 1099 )
  • 分类:算法

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢