跳至主要內容

feign调用组件

杨轩-国实信息大约 1 分钟常用组件微服务调用

git地址:

http://10.16.202.103:8089/component/component-ser/feign-enhancer-spring-boot-starter

解决问题

金宏网和DMZ区的Feign服务调用问题,目前DMZ的服务无法注册到金宏网上的nacos

退一步说,即使服务能够注册到nacos上,使用的地址也是当前网段内的ip,不是经过网闸代理后的对外ip,这样处于另一网段内的微服务无法进行服务调用的。

设计方案:

这里选择绕过nacos的服务注册和发现,让Feign调用走自定义的接口地址。

使用

引入依赖:

<dependency>
    <groupId>com.gosci.tech</groupId>
    <artifactId>feign-enhancer-spring-boot-starter</artifactId>
    <version>1.0.0-SNAPSHOT</version>
</dependency>

这个依赖中已经引入了spring-cloud-starter-openfeign,pom中就不需要重复引入原生的openfeign了。

使用原生Feign功能

项目中不需要再添加@EnableFeignClient了,在yml中添加下面的配置,这样会使用原生的服务发现流程:

feign:
  manual:
    basePackage: com.service

feign.manual.basePackage定义Feignclient的扫包路径,对应原先注解中的basePackages属性

走自定义的服务地址

在yml中进行配置,feign.manual.enabletrue时,服务发现时不会从nacos拉取服务地址:

feign:
  manual:
    enable: true
    basePackage: com.service
    addressMapping:
      hydra-service: http://127.0.0.1:8088