Springcloud组件hystrix

2023年 9月 22日 45.2k 0

1、问题描述

通过service-edu 调用service-vod,在调用时service-vod服务宕机,调用不到服务,出现了超时提示。

connect timed out executing DELETE http://service-vod/eduvod/video/241beb010b8e470b9650c468e700341c

2、如何使用熔断器

(1)在service模块中添加依赖
在这里插入图片描述

(2)在service-edu添加配置

#开启熔断机制
feign.hystrix.enabled=true
# 设置hystrix超时时间,默认1000ms
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=3000

(3)编写vodClient实现类在client目录下

@Component
public class VodFileDegradeFeignClient implements VodClient {
    @Override
    public R deleteVideoAliyun(String videoId) {
        return R.error();
    }
    @Override
    public R deleteMoreVideo(List videoIdList) {
        return R.error();
    }
}

(4)在VodClient里接口注解添加属性

@FeignClient(value = "service-vod",fallback = VodFileDegradeFeignClient.class)//服务名就是配置文件里配置的
@Component
public interface VodClient {
……
}

3、测试

通过service-edu 调用service-vod,在调用时service-vod服务宕机,没有抛异常,继续执行删除流程。

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论