业务背景:
两个springboot项目,charger项目、rmt项目,并注册在同一个nacos中。
rmt项目需要调用charger提供的接口。
1、rmt引入charger的maven依赖
<dependency>
<groupId>com.dmyc.charger</groupId>
<artifactId>charger-api</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
2、配置启动类,启动类加上该注解
@EnableFeignClients
3、在rmt写一个service类型
注解@FeignClient 不可少,path为charger配置中的url项目路径,post和get的url要与charger中保持一致。
4、在rmt中把Feign的Service,正常当作普通的Service引用即可。
后续出现问题:
在本地可以跑通,但是上到测试服后,报出以下错误
观察请求路径,发现缺少了IP地址。
1、检查nacos配置,两个项目注册在同一个nacos上,无误,打包上测试服的jar也无误。
2、检查运行环境,与本地不同,两个项目不在同一台测试服务器上,网络不通,导致找不到IP。
解决:在@FeignClient注解上,指定被调用方的主机IP地址。
@FeignClient(value = "charger", path = "/charger", url = "http://127.0.0.1:10005")