1.由于项目是微服务,所以服务之间的调用采用的是feignclient。但是一个服务还有可能去调用第三方的服务
客户端的方式有两种
@FeignCilent (value="demo")
public interface FeignCilentInvoke{
@GetMapping("/get/user/info")
String getUserInfo(@RequestBody UserDto userDto);
}
这种使用方式就是直接调用服务名为demo的服务,即调用http://ip:port/demo/get/user/info
@FeignClient(url="${param}",name="demo",fallbackFactory=DemoFactroy.class)
public interface FeignClientInvoke{
@GetMapping("/get/user/info")
String getUserInfo(@RequestBody UserDto userDto);
}
这种调用的就是以url方式调用,http://ip:port/{param}/get/user/info
以上就是两种使用方式
唯一要注意的点就是在设置超时调用或者使用熔断器的时候的超时设置
feign: httpclient: disable-ssl-validation: true enabled: false okhttp: enabled: true hystrix: enabled: true client: config: default: connectTimeout: 5000 readTimeout: 5000
对于feign的超时设置是有坑的,这里的 default 可以换成调用的@FeignClient中的name。第一种可以不使用name属性,则name和value默认相同
对于hystricx的时间设置可以使用网上的没什么坑