Dubbo负载均衡策略介绍
package com.lagou.loadbalance;
import org.apache.dubbo.common.URL;
import org.apache.dubbo.rpc.Invocation;
import org.apache.dubbo.rpc.Invoker;
import org.apache.dubbo.rpc.RpcException;
import org.apache.dubbo.rpc.cluster.LoadBalance;
import java.util.List;
public class OnlyFirstLoadbalancer implements LoadBalance {
@Override
public
// 所有的服务提供者 按照 ip + 端口 排序,选择第一个
// List
return list.stream().sorted((i1, i2) -> {
final int ipCompare = i1.getUrl().getIp().compareTo(i2.getUrl().getIp());
if (ipCompare == 0) {
return Integer.compare(i1.getUrl().getPort(), i2.getUrl().getPort());
}
return ipCompare;
}).findFirst().get();
}
}