Dubbo负载均衡
AbstractLoadBalance 在 Dubbo 中,所有负载均衡实现类均继承自 AbstractLoadBalance,该类实现了 LoadBalance 接口,并封装了一些公共的逻辑。 负载均衡的入口在AbstractLoadBalance的select方法。 public abstract class AbstractLoadBalance implements LoadBalance { ...... @Override public <T> Invoker<T> select(List<Invoker<T>> invokers, URL url, Invocation invocation) { if (CollectionUtils.isEmpty(invokers)) { return null; } // 如果 invokers 列表中仅有一个 Invoker,直接返回即可,无需进行负载均衡 if (invokers.size() == 1) { return invokers.get(0); } // 进行负载均衡,该方法为抽象方法,由子类实现 return doSelect(invokers, url, invocation); } protected abstract <T> Invoker<T> doSelect(List<Invoker<T>>