优化开发体验——》Robon修改

2020-11-12  本文已影响0人  九思而行

需求

因为微服务很多,在开发阶段,需要开发某一项目时,往往要启动很多关联项目,但是大多数关联项目都是已完成的,不希望在本地再次启动这些微服务,因为在测试环境中,已经有了启动的服务了(一下同意说远程服务),之前写了一个eureka的,感觉不太满意,这次换一个

思路

使用feign的出现的这个问题,虽然feign可以直接指定host,但是需要需改代码,不够便捷,所以决定直接修改Robbin的获取方式,有兴趣的同学可以看看源代码

代码

  1. 确定导入的包
<!--feign调用-->
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.netflix.servo/servo-core -->
<dependency>
     <groupId>com.netflix.servo</groupId>
     <artifactId>servo-core</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.netflix.netflix-commons/netflix-commons-util -->
<dependency>
     <groupId>com.netflix.netflix-commons</groupId>
     <artifactId>netflix-commons-util</artifactId>
</dependency>
  1. 修改com.netflix.loadbalancer.LoadBalancerContext


    image.png

这个是已经修改后的,可以看到在去注册中心拉取之前先走了自己的方法,clientName是Feign上面的服务名,如果没有指定,才会注册中心获取


image.png

这个是相关的指定ip的工具类

结语

基本实现了我们的需要,有更好的方法请一定不吝赐教!0.0

上一篇 下一篇

猜你喜欢

热点阅读