Spring Cloud Feign 如何实现服务降级

您所在的位置:网站首页 服务降级怎么做 Spring Cloud Feign 如何实现服务降级

Spring Cloud Feign 如何实现服务降级

2023-10-03 17:51| 来源: 网络整理| 查看: 265

为什么使用服务降级就不再多做阐述,在之前的文章讲Spring Cloud Ribbon中有提到过,本节只来实现一下怎么使用 Feign来到达服务降级的目的,本节列子使用上一节创建的项目fegin-consumer来进行改造,实现服务降级。

Feign实现服务降级只需要为Feign客户端的定义接口编写一个具体的接口实现类,在上一节中在fegin-consumer工程中创建了一个FeignService定义接口类,我们只需要为FeignService接口实现一个服务降级类FeignServiceFallback,其中每个重写的方法的实现逻辑都可以用来定义响应的服务降级逻辑。

为FeignService创建服务降级类FeignServiceFallback @Component public class FeignServiceFallback implements FeignService { @Override public String hello() { return "/feign/test:远程调用失败了"; } @Override public String testRequest(String name) { return "/feign/testRequest:远程调用失败了"; } @Override public String testHeader(String name) { return "/feign/testHeader:远程调用失败了"; } @Override public String testRequestBody(User user) { return "/feign/testRequestBody:远程调用失败了"; } } 修改FeignService类,使用@FeignClient注解的fallback属性来指定对应的服务降级实现类。 @FeignClient(name = "hello-client", fallback = FeignServiceFallback.class) public interface FeignService { @RequestMapping(value = "/feign/test") String hello(); @RequestMapping(value = "/feign/testRequest") String testRequest(@RequestParam(value = "name") String name); @RequestMapping(value = "/feign/testHeader") String testHeader(@RequestHeader(value = "name") String name); @RequestMapping(value = "/feign/testRequestBody") String testRequestBody(@RequestBody User user); } 修改application.yml,添加feign.hystrix.enabled=true开启Feign客户端的Hystirx支持,默认是false,如果不开启,将 测试

启动服务注册中心和fegin-consumer服务,但是服务提供者实例不去启动,这样当远程调用时,可以看一下是否进行了服务降级。 访问:http://localhost:9000/feign/test2

image.png 从控制台打印的结果中可以看到,因为服务提供者没有启动,远程调用失败,执行了服务降级逻辑。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3