feign client 开发环境中只调用自己本地的服务
1.新建一个 TestRibbon 实现 IRule 接口 代码如下:
import com.netflix.loadbalancer.BaseLoadBalancer; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.Server; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.List; public class TestRibbon implements IRule { private Logger logger = LoggerFactory.getLogger(TestRibbon.class); ILoadBalancer balancer = new BaseLoadBalancer(); @Override public Server choose(Object key) { List<Server> allServers = balancer.getAllServers(); String localIp = ""; try { localIp = InetAddress.getLocalHost().getHostAddress().toString(); } catch (UnknownHostException e) { logger.info("未找到本机ip:", e); } for (Server server : allServers) { if (server.getHost().equalsIgnoreCase(localIp)) { logger.info("本次Feign调用地址:host - [{}] Server - [{}]", server.getHost(), server.toString()); return server; } } return null; } private Server findServer(List<Server> allServers, int port) { for (Server server : allServers) { if (server.getPort() == port) { return server; } } System.out.println("NULL port=" + port); return null; } @Override public void setLoadBalancer(ILoadBalancer lb) { this.balancer = lb; } @Override public ILoadBalancer getLoadBalancer() { return this.balancer; }
2.application.yml文件中配置新写的Ribbon
fund-service-account: ribbon: NFLoadBalancerRuleClassName: com.xxx.ooo.config.TestRibbon
3.这样就只会调用自己本地发布的服务了。
1.新建一个 TestRibbon 实现 IRule 接口 代码如下: import com.netflix.loadbalancer.BaseLoadBalancer; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.IRule; import com.netflix.loadbalancer.Server; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.net.InetAddress; import java.net.UnknownHostException; import java.util.List; public class TestRibbon implements IRule { private Logger logger = LoggerFactory.getLogger(TestRibbon.class); ILoadBalancer balancer = new BaseLoadBalancer(); @Override public Server choose(Object key) { List上一篇:
5款热门的远程控制软件,让你事半功倍