负载均衡:它的职责是将网络请求,或者其他形式的负载“均摊”到不同的机器上。避免集群中部分服务器压力过大,而另一些服务器比较空闲的情况。通过负载均衡,可以让每台服务器获取到适合自己处理能力的负载。在为高负载服务器分流的同时,还可以避免资源浪费,一举两得。负载均衡可分为软件负载均衡和硬件负载均衡;
软件负载均衡还是可以接触到的,比如 Nginx
Dubbo 需要对服务消费者的调用请求进行分配,避免少数服务提供者负载过大。服务提供者负载过大,会导致部分请求超时。因此将负载均衡到每个服务提供者上,是非常必要的;
Dubbo 提供了4种负载均衡实现:
RandomLoadBalance:加权随机算法的
LeastActiveLoadBalance:加权最小活跃数算法
ConsistentHashLoadBalance:hash一致性算法
RoundRobinLoadBalance:加权轮询算法
一、dubbo在调用过程中是如何进行负载的?
来看一下源码
package com.alibaba.dubbo.rpc.cluster.support;
public abstra