负载均衡的作用是将用户请求分发给不同的服务实例,既可以提高系统的吞吐量,也可以避免因为单一服务实例宕机导致整个系统不可用的情况。
负载均衡算法定义了如何将请求分散到服务实例的规则,优秀的负载均衡算法能够有效提高系统的吞吐量,使服务集群中各服务的负载处于高效稳定的状态。常见的负载均衡算法如下:
1.随机法
该算法是随机从可用服务列表中选取一个服务实例来分发请求。它的实现非常h简单,一定程度上保证了请求的分散性,但是无法顾及请求分配是否与服务实例的负载能力相符合
2.轮询法或者加权轮询法
该算法将请求轮流分配给现有可用服务列表中的每一个服务实例,轮询法适用于集群中服务中服务实例的负载能力大致相同且请求处理能力差异不大的场景。加权轮询法会根据各个服务实例的权重,额外分配给权重较大者相适应的更多请求。
3.Hash法或一致Hash法
该算法根据请求的某些属性(比如userId),使用Hash算法将其分散到不同服务实例中,这样保证了相同属性的请求会被转发到相同的服务实例中,可以更好地利用缓存,提高系统的整体性能。改进的一致性Hash算法则基于虚拟节点,在某一个服务实例宕机或不可用后能将其请求平摊到其他服务节点,避免请求分发的目标实例发生剧烈的变化,影响系统的整体处理性能。
负载均衡算法详解:提升系统性能的关键策略

最低0.47元/天 解锁文章
218

被折叠的 条评论
为什么被折叠?



