从0开始搭建springcloud---Hystrix请求熔断与服务降级

本文详细介绍了Spring Cloud中的Hystrix熔断机制,包括其工作原理、如何在微服务架构中应用以提高系统稳定性和可靠性,以及具体配置步骤。通过类比电力过载保护器,解释了熔断与降级的区别和联系。

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

1. 简介

Hystrix是Spring Cloud提供的一种带有熔断机制的框架,由于在微服务系统中同一个操作会由多个不同的微服务来共同完成,所以微服务与微服务之间会由很多相互的调用,由于在分布式环境中经常会出现某个微服务节点故障的情况,所以会由调用失败发生,而熔断器的作用就是当出现远程调用失败的时候提供一种机制来保证程序的正常运行而不会卡死在某一次调用,类似Java程序中的try-catch结构,而只有当异常发生的时候才会进入catch的代码块。

熔断:
生活中举个例子,如电力过载保护器,当电流过大的的时候,出问题,过载器会自动断开,从而保护电器不受烧坏。因此Hystrix请求熔断的机制跟电力过载保护器的原理很类似。

降级:
抛弃一些非核心的接口和数据

熔断与降级的相同点:
1. 从可用性和可靠性触发,为了防止系统崩溃
2. 最终让用户体验到的是某些功能暂时不能使用

熔断与降级的不同点:
1. 服务熔断一般是下游服务故障导致的,而服务降级一般是从整体系统负荷考虑,由调用方控制

2. 代码配置

我们复制一份上一篇博客中的pj-consumer-movie-feign项目,重命名为pj-consumer-movie-feign-hystrix

2.1 pom.xml

引入spring-cloud-starter-netflix-hystrix

		<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
        </dependency>

在这里插入图片描述

2.2 启动类增加注解

启动类里面增加注解@EnableCircuitBreaker
在这里插入图片描述

2.3 API接口

当用户微服务出现异常时,调用findByIdFail()方法
在这里插入图片描述
至此配置完成

3. feign配置hystrix

3.1 开启feign支持hystrix

yml文件增加以下配置

feign:
	hystrix:
		enabled: true

3.2 class继承FeignClient的类

可以在实现方法里写自己的异常报警业务等
在这里插入图片描述

3.3 FeignClient配置fallback

在这里插入图片描述

4. 调整策略超时时间调整

hystrix:
	  command:
	    default:
	      execution:
	        isolation:
	          thread:
	            timeoutInMilliseconds: 4000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值