SpringCloud系列之Hystrix 服务熔断和降级

本文介绍微服务架构下,如何利用服务熔断与降级保护系统稳定性,避免雪崩效应。通过添加Hystrix依赖,设置熔断与降级策略,确保在部分服务故障时,核心业务仍能正常运行。同时,利用Hystrix Dashboard实现服务调用监控。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

        在微服务框架中,每个微服务都是负责某一项单独的任务,整个应用由多个微服务构成,微服务之间的数据通过远程调用实现交互,在整个应用中,可能会出现服务A调用服务B,并等待服务B的结果,服务B调用服务C,服务C调用服务D、E等,这就是所谓的“扇出”,如果此时这个链路上的某个服务出现故障,宕机不可用等,整个应用对服务A的调用会越来越占用资源,从而引起系统崩溃,这就是所谓的”雪崩效应"。为了解决上述问题,人们引入服务熔断、降级等保护性措施,最大限度的保证服务的可用性。

一、概念描述

       服务熔断:当程序达到某个熔断体条件的时候,程序会根据事先设定好的机制给与调用者反馈。

       服务降级:在系统资源有限的时候,为了保证核心功能的运行,减少非核心业务的调用,会临时关闭非核心业务来保证核心的业务正常的开展,在合适的时候在去开放非核心。

 

二、服务熔断

1、在原项目基础上,添加Hystrix依赖

2、在相应的方法上面添加注解@HystrixCommond

通过fallBackMethod属性指定熔断时要执行的方法。

3、启动类上添加注解@EnableHystrix

4、调用方法

在数据库没有该数据的时候也不会抛出异常,而是反馈我们实现设定好的结果。

三、服务降级

1、在上文feign客户端的注解@FeignClient增加属性

在整个service方法上添加该属性,作用类似于Spring中的AOP ,作用域为整个service层的所有方法。

2、其中的fallbackFactory属性指定了对应的处理逻辑DeptClientServiceHystrix

DeptClientServiceHystrix要实现FallbackFactory接口,并实现create()方法,这里面的方法及服务在降级时候的处理逻辑。

3、这个时候再调用接口

这里没有任何的处理逻辑,直接调用自定义的降级方法

直接给客户端返回我们处理逻辑。可以理解为该项服务被关闭。

四、HystrixdashBoard监控

       Hystrix也给我们提供了对各个微服务调用的监控。

1、编写hystrix-dashboard类,添加依赖

2、添加配置文件application.yml

这里只要配置一个端口号就可以了。

3、启动类上添加注解@EnableHystrixDashboard

访问<主机名>:端口号/hystrix

出现此界面说明,配置成功了。

4、监控服务调用

下面使用Hystrix来监控服务的调用。

1、给要被监控的服务添加相关依赖

2、启动服务配置监控路径,此处演示的是单个微服务监控

3、点击按钮 Monitor Stream 即可出现监控画面

总结:本文记录了springcloud 服务降级和服务熔断,以及单机环境下的服务监控,后面还将记录网关和配置中心等配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值