SpringCloud--熔断简单实现

本文通过一个具体的示例,展示了如何在Spring Cloud中使用Hystrix实现服务的熔断与降级。通过配置断路器参数,如请求阈值、休眠窗口和错误百分比,来控制熔断行为。当达到设定条件时,服务会进入熔断状态,避免雪崩效应,保障系统的稳定运行。

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

要在上篇<SpringCloud–hystrix服务降级简单实现>博客基础上 去完成熔断

不用引入的新的JAR的依赖

@Controller
public class HystrixController {

    @Qualifier("restTemplate1")
    @Autowired
    RestTemplate restTemplate1;

        @RequestMapping("/hystrix")
        @ResponseBody
        @HystrixCommand(commandProperties = {
                @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "10"),
                @HystrixProperty(name = "circuitBreaker.sleepWindowInMilliseconds",value = "10000"),
                @HystrixProperty(name = "circuitBreaker.errorThresholdPercentage",value = "60")
        } ,fallbackMethod = "errorNystrix")
        String hystrix(Integer id) {
            if(id==2){
                throw new RuntimeException("出现异常");
            }
            return "执行完成" ;
        }

        String errorNystrix(Integer id) {
            return "hystrix熔断,超时了执行此方法";
        }
}

直接编写

circuitBreaker.requestVolumeThreshold:用来设置在滚动时间窗中,断路器熔断的最小请求数。例如,默认该值为20的时候,如果滚动时间窗(默认10秒)内仅收到19个请求,即使这19个请求都失败了,断路器也不会打开。
circuitBreaker.sleepWindowInMilliseconds:用来设置当断路器打开之后的休眠时间窗。休眠时间窗结束之后,会将断路器设置为“半开”状态,尝试熔断的请求命令,如果依然时候就将断路器继续设置为“打开”状态,如果成功,就设置为“关闭”状态。
circuitBreaker.errorThresholdPercentage:该属性用来设置断路器打开的错误百分比条件。默认值为50,表示在滚动时间窗中,在请求值超过requestVolumeThreshold阈值的前提下,如果错误请求数百分比超过50,就把断路器设置为“打开”状态,否则就设置为“关闭”状态。

效果:
开始能正常访问
在这里插入图片描述

多次访问服务降级后
在这里插入图片描述

在执行原有方法
在这里插入图片描述
已经熔断了

等待一段时间后有可以正常访问了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值