一 负载均衡类图
二 AbstractLoadBalancerRule解读
//负载均衡策略的抽象类
public abstract class AbstractLoadBalancerRule implements IRule, IClientConfigAware {
//该对象能够在具体实现选择服务策略时,获取一些负载均衡器中维护的信息来作为分配依据
private ILoadBalancer lb;
@Override
public void setLoadBalancer(ILoadBalancer lb){
this.lb = lb;
}
@Override
public ILoadBalancer getLoadBalancer(){
return lb;
}
}
三 RandomRule解读
public class RandomRule extends AbstractLoadBalancerRule {
//从服务清单中随机选择一个服务实例
@edu.umd.cs.findbugs.annotations.SuppressWarnings(value = "RCN_REDUNDANT_NULLCHECK_OF_NULL_VALUE")
public Server choose(ILoadBalancer lb, Object key) {
if (lb == nu