文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

SpringCloud微服务熔断器Hystrix如何使用

2023-07-02 18:21

关注

这篇文章主要介绍了SpringCloud微服务熔断器Hystrix如何使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SpringCloud微服务熔断器Hystrix如何使用文章都会有所收获,下面我们一起来看看吧。

什么是Hystrix

在日常生活用电中,如果我们的电路中正确地安置了保险丝,那么在电压异常升高时,保险丝就会熔断以便切断电流,从而起到保护电路安全运行的作用。

在货船中,为了防止漏水和火灾的扩散,一般会将货仓进行分割,避免了一个货仓出事导致整艘船沉没的悲剧,这就是舱壁保护机制。

Hystrix提供的熔断器也类似,在调用某个服务提供者时,当一定时间内请求总数超过配置的阈值,且窗口期内错误率过高,那Hystrix就会对调用请求熔断,后续的请求直接短路,进入降级逻辑,并执行本地的降级策略。

SpringCloud微服务熔断器Hystrix如何使用

同时Hystrix也将系统中的服务提供者隔离起来,一个服务提供者延迟过高或者失败,并不会导致整个系统的失败,同时也能够控制调用这些服务的并发度。

总之,Hystrix 能使你的系统在出现依赖服务失效的时候,通过隔离系统所依赖的服务,防止服务级联失败,同时提供失败回退机制,更优雅地应对失效,并使你的系统能更快地从异常中恢复。

Hystrix实战

接着我们上篇文章中的dms服务,进行如下修改:

Feign 本身就支持Hystrix,不需要额外引入依赖。

首先修改调用方app服务的配置文件application.xml,开启hystrix

feign:
 hystrix:
  enabled: true

增加服务熔断处理类,实现DmsApi接口

@Componentpublic class DmsHystrixImpl implements DmsApi {    @Override    public String findNameByCode(String code) {        return "服务器故障";    }}

修改接口类注解,增加熔断处理类:fallback = DmsHystrixImpl.class;

(Spring Cloud Feign HTTP请求异常Fallback容错机制,它是基于Hystrix实现的,所以要通过配置参数feign.hystrix.enabled=true开启该功能)

@FeignClient(value = "dms",fallback = DmsHystrixImpl.class)public interface DmsApi {    @RequestMapping(value="/dict/[code]", method = RequestMethod.GET)    public String findNameByCode(@PathVariable("code") String code);}

增加异常代码,以便验证

@RestControllerpublic class DmsController implements DmsApi {    @Override    public String findNameByCode(String code) {        Integer.parseInt("a");        switch (code){            case "0" :                return "男";            case "1" :                return "女";            default:                return "未知";        }    }}

启动项目,进行验证,返回正确结果。

SpringCloud微服务熔断器Hystrix如何使用

关于“SpringCloud微服务熔断器Hystrix如何使用”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“SpringCloud微服务熔断器Hystrix如何使用”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯