feign远程调用

在主程序入口家加@EnableFeignClients

 

写一个访问外部服务的接口

 

@FeignClient(name = "$test", fallbackFactory = testFallbackFactory.class)
public interface testClient {

@RequestMapping("/test")
int selectByAgentAndMakeCode(@RequestParam("test") String test);
}


调用出错时使用testFallbackFactory类

testFallbackFactory类

实现
FallbackFactory

 

 

熔断后抛出对应的方法调用信息,也能自己重写


feign这个叫服务降级 调用远程的超时了,调用自己本地的,返回结果,防止请求挤压导致服务器崩溃

熔断和降级的区别

1.服务降级:不管在什么情况下,服务降级的流程都是先调用正常的方法,再调用fallback的方法。 也就是服务器繁忙,请稍后再试,不让客户端等待并立刻返回一个友好提示。

2.服务熔断:假设服务宕机或者在单位时间内调用服务失败的次数过多,即服务降级的次数太多,那么则服务熔断。 并且熔断以后会跳过正常的方法,会直接调用fallback方法,即所谓“服务熔断后不可用”。 类似于家里常见的保险丝,当达到最大服务访问后,会直接拒绝访问,拉闸限电,然后调用服务降级的fallback方法,返回友好提示。

 

网上找的一张图  很好

 

posted @ 2022-04-07 11:11  霸王龙168  阅读(130)  评论(0)    收藏  举报