SpringCloud 基础——Hystrix 熔断器与降级(RestTemplate 与 Feign)

本文介绍了如何在SpringCloud中使用Hystrix实现服务熔断和降级,通过RestTemplate和Feign的例子详细展示了配置和测试过程。当服务调用超时或失败时,Hystrix会触发熔断,执行预先定义的降级策略,如返回默认值或使用本地缓存。同时,文章提到了Feign中熔断超时和重试行为的一些观察和疑问。

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

源码地址:https://pan.baidu.com/s/1Hmvh1Bbss_Z1w1I7I1mwDw 提取码:e41h

在进行服务调用的时候,可能由于各种原因,服务器挂掉或是网络不稳定超时等,使得响应迟迟不能返回给客户端,而后面的请求又在不断请求这个服务,这样则很可能导致服务瘫痪。Hystrix 熔断器机制就是来处理这种情况的,服务开启熔断器时,若在规定时间内没有返回响应,则认为服务出错了,断开服务,让后面的请求直接返回。让请求直接调用本地的缓存或是本地的其他方法,这就是所谓的 服务降级
服务降级让请求调用本地的方法,去缓存查找数据,或者返回错误处理等响应信息。(如果客户发送了一个请求,却迟迟得不到回应,可能会一直发送请求,增加服务器的负担,及时返回响应的话,即使不是客户想要的结果,也可以缓解其情绪,减缓其操作)
可以说服务降级通常是熔断机制启动后的处理方法
下面在 service-rest 服务和 service-feign 服务加一些东西就可以实现熔断与服务降级了

为了更好地看效果,稍微改造一下 serviceA1 服务中 controller 类的 getList() 方法

	@RequestMapping("/getList")
	public List<String> getList() {
		long start = System.currentTimeMillis();
		try {// 降级测试
			long sleeptime = (long) (Math.random() * 3000);
			Thread.sleep(sleeptime);
		} catch (InterruptedException e) {
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值