diff --git a/docs/distributed-system/dubbo-load-balancing.md b/docs/distributed-system/dubbo-load-balancing.md index 62130bb095e1b84f5b27f367358b23fa43748c4b..a5dc3edd9b0cebb4421e1991b96a04929e24b5aa 100644 --- a/docs/distributed-system/dubbo-load-balancing.md +++ b/docs/distributed-system/dubbo-load-balancing.md @@ -32,7 +32,13 @@ dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略 #### LeastActiveLoadBalance -这个就是自动感知一下,如果某个机器性能越差,那么接收的请求越少,越不活跃,此时就会给**不活跃的性能差的机器更少的请求**。 +官网对 `LeastActiveLoadBalance` 的解释是“**最小活跃数负载均衡**”,活跃调用数越小,表明该服务提供者效率越高,单位时间内可处理更多的请求,那么此时请求会优先分配给该服务提供者。 + +最小活跃数负载均衡算法的基本思想是这样的: + +每个服务提供者会对应着一个活跃数 `active`。初始情况下,所有服务提供者的 `active` 均为 0。每当收到一个请求,对应的服务提供者的 `active` 会加 1,处理完请求后,`active` 会减 1。所以,如果服务提供者性能较好,处理请求的效率就越高,那么 `active` 也会下降的越快。因此可以给这样的服务提供者优先分配请求。 + +当然,除了最小活跃数,`LeastActiveLoadBalance` 在实现上还引入了权重值。所以准确的来说,`LeastActiveLoadBalance` 是基于加权最小活跃数算法实现的。 #### ConsistentHashLoadBalance @@ -43,6 +49,7 @@ dubbo 负载均衡策略和集群容错策略都有哪些?动态代理策略 ### dubbo 集群容错策略 #### Failover Cluster 模式 + 失败自动切换,自动重试其他机器,**默认**就是这个,常见于读操作。(失败重试其它机器) 可以通过以下几种方式配置重试次数: