背景:开发,测试环境都使用了一个注册中心,所以在开发,测试环境不想进行负载均衡
原因:自己本地调试方便, 可能会负载到同事的机器上
注册中心使用nacos
实现原理:获取本机ip,从服务列表中获取相同ip的服务实例进行调用
配置步骤:
//1: 自定义负载策略
@Slf4j public class MyRibbonRule extends AbstractLoadBalancerRule implements InitializingBean { @Autowired InetUtils inetUtils; private String localIp = ""; @Override public void initWithNiwsConfig(IClientConfig iClientConfig) { } @Override public Server choose(Object key) { Server server = null; try { ILoadBalancer lb = getLoadBalancer(); int count = 0; while (server == null && count++ < 10) { List<Server> reachableServers = lb.getReachableServers(); List<Server> allServers = lb.getAllServers();