Feign远程调用服务降级

307 阅读1分钟

概念

服务降级是服务自我保护的一种方式,或者保护下游服务的一种方式

用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃

服务降级虽然会导致请求失败,但是不会导致阻塞。

降级处理

编写降级策略

实现的接口就是我们要降级的对象

@Component
public class IArticleClientFallback implements IArticleClient {

    @Override
    public ResponseResult saveArticle(ArticleDto dto) {
        return ResponseResult.errorResult(AppHttpCodeEnum.SERVER_ERROR,"获取数据失败");
    }
}

远程接口中指定降级代码

@FeignClient(value = "leadnews-article",fallback = IArticleClientFallback.class)
public interface IArticleClient {
    @PostMapping("/api/v1/article/save")
    ResponseResult saveArticle(@RequestBody ArticleDto dto);
}

客户端开启降级处理

创建扫描类

@Configuration
@ComponentScan("com.heima.apis.article.fallback")
public class InitConfig {
}

开启配置

超时就会降级处理

feign:
    # 开启熔断降级
    hystrix:
        enable: true
        #修改调用的时间
        client:
            config:
                default:
                    connectTimeout: 10000
                    readTimeout: 10000

Feign基本操作可以看我这篇:juejin.cn/post/724306…