1. 服务雪崩
雪崩是系统中的蝴蝶效应,导致其发生的原因多种多样,有不合理的容量设计,或者是高并发下某一个方法响应变慢,亦或是某台机器的资源耗尽。从源头上我们无法完全杜绝雪崩源头的发生,但是雪崩的根本原因来源于服务之间的强依赖,所以我们可以提前评估。当整个微服务系统中,有一个节点出现异常情况,就有可能在高并发的情况下出现雪崩,导致调用它的上游系统出现响应延迟,响应延迟就会导致 Tomcat 连接本耗尽,导致该服务节点不能正常的接收到正常的情况,这就是服务雪崩行为。
2. 服务隔离
如果整个系统雪崩是由于一个接口导致的,由于这一个接口响应不及时导致问题,那么我们就有必要对这个接口进行隔离,就是只允许这个接口最多能接受多少的并发,做了这样的限制后,该接口的主机就会空余线程出来接收其他的情况,不会被那个坏了的接口占用满。Hystrix 就是一个不错的服务隔离框架。
3. Hystrix 服务隔离使用
- 导入 jar
<dependency>
<groupId