负载均衡算法

负载均衡算法可以分为下面几类:

任务平分类:可以按照平均分配或者加权平均分配的算法。
负载均衡类:按照服务器的负载,比如CPU负载,IO负载等进行分配(站在服务器的角度)。
性能最优类:客户端按照服务器的响应时间来分配请求(站在客户端的角度)。
Hash类:按照特定的信息进行hash值,然后分配给特定的服务器,比如按照IP hash算法,Session ID Hash算法,或者按照用户的ID hash等等。
一、任务平分类

轮询算法

该算法实现简单,即轮询每个服务器,分别将强求发送到不同的服务器中,不过对于某些场景,比如购物车业务会造成分布式session一致性问题。 而且该算法对于服务器的新旧,好坏程度无感知,如64核和32核的服务器的负载应当不同。

加权轮询

该算法解决上面的问题,可以按照服务器的核数等情况分配不同数量的请求 ,比如64核的服务器请求数应当多于32核的服务器。 但是该算也不能避免分布式session一致性的问题,也无法感知服务器的运行状态。(运行状态即服务器正在运行时的CPU负载以及IO负载)。

二、负载均衡类

负载最低优先算法

该算法解决了轮询无法感知服务器的运行状态的问题。

对于LVS负载均衡设备,可以通过“连接数”来衡量服务器的负载,连接数越多,负载越高。
对于Nginx负载均衡设备,可以通过“HTTP请求数”来衡量服务器负载等。 缺点:
使用最少连接数算法,需要负载均衡器和服务器之间建立连接,时刻感知服务器的连接状态,如果服务器使用的是连接池这种方式则不适合使用该算法,比如使用 Mysql的连接池。
CPU负载算法要求服务器每隔一段时间收集服务器的信息,而这个时间间隔不好控制,间隔太长,导致单个时间间隔内服务器的负载过高,性能下降;间隔太短,需要 频繁的收集服务器的信息。
三、性能最优类

性能最优优先算法

按照服务器的响应时间,将请求优先转发给响应时间短的服务器。

四、Hash类

IP地址Hash算法

将来自同一个IP地址的请求发送到同一台服务器中响应,解决了某些场景下分布式session一致性的问题。

URL hash算法

将同一个URL的请求发送到同一个服务器中响应。比如将访问图片的URL请求发送到静态服务器或者发送到缓存服务器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值