Spring Cloud(五) :断路器(Hystrix)

Hystrix是一款Netflix开源的熔断中间件,能够提供断路,降级,监控等多种服务。
就如我们日常生活中的电路保险丝,当接入电源的电器过多,导致整体负载过大时,保险丝会自动熔断,以此保护电器不会受损。
而在微服务架构中,当一个服务接口不堪重负,出现超时或宕机等无法使用的情况时,下游服务因获取不到数据,导致服务不可用,然后恶性循环导致整个服务体系宕机,形成雪崩效应。此时熔断器就充当了保险丝的作用,在服务接口超时或不可用时,马上返回一个错误信息,让整个服务可以继续运行,保护了整个服务体系。

PS:本文Spring Boot为2.X版本

代码下载

这里将会在上一篇Spring Cloud(四) :微服务间的互相调用和负载均衡实现(ribbon+restTemplate和feign)的基础上进一步扩展。
用到的项目为
1.SpringCloudServiceCenter 注册中心
2.SpringCloudConfig 配置中心
3.SpringCloudServiceI 服务I
4.SpringCloudServiceIII 服务III
5.SpringCloudCustomerI ribbon
6.SpringCloudCustomerII feign

服务熔断

一.在ribbon中使用hystrix

SpringCloudCustomerI 基础上扩展
1.添加依赖

		<!-- 熔断/降级 -->
		<dependency>
    		<groupId>org.springframework.cloud</groupId>
    		<artifactId>spring-cloud-starter-netflix-hystrix</artifactId>
		</dependency>

2.修改MyCustomerController.java。
添加如下内容
添加@HystrixCommand(fallbackMethod = "fallbackInfo")注解,fallbackMethod 为服务不可用时将会调用的方法

	@ResponseBody
	@RequestMapping(value="/CgetServiceIData")
	@HystrixCommand(fallbackMethod = "fallbackInfo")
	public String getServiceIData() {
		return getServiceI();
	}
	
	String fallbackInfo() {
		return "The service is down!";
	}

3.启动项SpringCloundCustomerIApplication.java
添加注解。

//两个里选一个即可
@EnableHystrix
@EnableCircuitBreaker

之前看各种博客时总能看到@EnableHystrix@EnableCircuitBreaker交替出现,那么它们有什么区别呢?其实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

团子ing

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值