SpringCloud的Feign接口正确开发姿势

微服务中,直接在各模块之间暴露的接口上标注@FeignClient是不合规范的。

像这样。SpringCloud的Feign接口正确开发姿势_第1张图片该是不被允许的

正确使用姿势是,各模块暴露的接口应该是纯粹的

public interface RpcService {
    @GetMapping("hello")
    String hello();
}

而我们在使用的时候要搞一个接口去继承这个接口,在子接口上标注@FeignClient。像这样

@FeignClient("cctv1")
public interface RpcFeignService extends RpcService {
}

且在调用的时候注入这个子接口

SpringCloud的Feign接口正确开发姿势_第2张图片

这样在做熔断和降级的时候会规避掉一些问题。而且,重要的是,当我们引用了别的微服务的api模块时,因为我们并不需要所有的接口,如果他的接口都加了@FeignClient的话,我们的项目就会创建很多无用的代理对象。

你可能感兴趣的:(SpringCloud)