负载均衡算法
负载均衡算法可以分为下面几类: 任务平分类:可以按照平均分配或者加权平均分配的算法。 负载均衡类:按照服务器的负载,比如CPU负载,IO负载等进行分配(站在服务器的角度)。 性能最优类:客户端按照服务器的响应时间来分配请求(站在客户端的角度)。 Hash类:按照特定的信息进行hash值,然后分配给特定的服务器,比如按照IP hash算法,Session ID Hash算法,或者按照用户的ID hash等等。 一、任务平分类 轮询算法 该算法实现简单,即轮询每个服务器,分别将强求发送到不同的服务器中,不过对于某些场景,比如购物车业务会造成分布式session一致性问题。 而且该算法对于服务器的新旧,好坏程度无感知,如64核和32核的服务器的负载应当不同。 加权轮询 该算法解决上面的问题,可以按照服务器的核数等情况分配不同数量的请求 ,比如64核的服务器请求数应当多于32核的服务器。 但是该算也不能避免分布式session一致性的问题,也无法感知服务器的运行状态。(运行状态即服务器正在运行时的CPU负载以及IO负载)。 二、负载均衡类 负载最低优先算法 该算法解决了轮询无法感知服务器的运行状态的问题。 对于LVS负载均衡设备,可以通过“连接数”来衡量服务器的负载,连接数越多,负载越高。 对于Nginx负载均衡设备,可以通过“HTTP请求数”来衡量服务器负载等。 缺点: