Skip to content

load balancer 算法

Load Balancer

Load balancer的作用是管理客户请求,并根据算法,将请求分发到不同的后端服务上。

常见的load balancer算法

round robin

lb顺序地将请求分发给当前可用的后端服务,好处是简单,不需要消耗太多的资源来进行计算得出请求要转发的后台服务是哪个。如果后端服务的硬件资源差不多,那么可以使用该策略。

round robin

weighted

每个后端服务的硬件资源较大区别,可能是cpu可能是内存,也可能是网卡速度。

比如老机器是1c1g配置,新机器是2c2g配置,那么显然round robin方式,可能造成新机器资源闲置,而老机器资源紧张的局面。此时可以对不同配置的机器设置不同的权重。根据服务器的权重来分发请求,

这里假设app1、app2、app3的权重分别为1、3、2。最终不同服务处理的请求的个数会是1:3:2。

weighted

Least Connected

在某些场景下,请求应该分发给当前正在处理请求数量最少的应用服务。

假设在各个机器的资源配置差不多。但是客户的请求连接的时间,有长,有短,可能和客户的行为有关,也可能跟后台服务的处理速度有关。如下图,app2已经处理完了req2,此时app1和app3还在处理各自的第一个请求,那么req7就该分配给app2

不管采取的是什么算法,最终的目的都是在整体上提高服务的资源利用率。

Published in技术数据结构和算法

Be First to Comment

Leave a Reply

Your email address will not be published.