服务熔断简介
服务熔断也称服务隔离或者过载保护。在微服务应用中,服务存在一定的依赖关系,形成一定的依赖链。如果某个目标服务调用慢或者有大量超时,造成服务不可用,间接导致其他的依赖服务不可用,最严重的可能会阻塞整条依赖链,最终导致业务系统崩溃(又称雪崩效应)。此时,对该服务的调用执行熔断,对于后续请求,不再继续调用该目标服务,而是直接返回,从而可以快速释放资源。等到目标服务情况好转后,则可恢复其调用。
在Sping Cloud框架里,熔断机制通过Hystrix实现。Hystrix会监控微服务间调用的状况,当失败的调用达到一定阀值((5秒之内发生20次失败是Hystrix定义的缺省值),就会启动熔断机制。原本计划被调用的服务将不会被调用,取而代之的Hystrix会找到配置好的方法,进行快速的返回。
集成Hystrix
添加pom依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-netflix-hystrix</artifactId> </dependency>
使用Hystrix,主程序类上添加@EnableCircuitBreaker注解
@SpringBootApplic