知识点
- 什么是雪崩
- 熔断降级(解决)
- 限流(预防)
众多微服务,服务之间通信,都是远程调用;如果某个服务挂了,就就可能导致服务雪崩。比如服务d它宕机了,服务a去调用服务d肯定是失败的。这时候服务a还不断去向服务d发起请求。一个服务的连接数是一定,调用失败时并没有释放连接,当连接占满后,它就不能对外提供服务了。这个时候可能服务a也会宕机了。这将会是一个连锁反应。这样就将出现大面积的服务不可用。
服务降级
服务降级是服务自我保护的一种方式或者保护下游服务的一种方式,用于确保服务不会受请求突增影响变得不可用,确保服务不会崩溃
如果降级太多,则会触发熔断机制
服务熔断
Hstrix熔断机制,用于监控微服务调用情况,默认是关闭的,如果开启需要再引导类上添加@EnableCircuitBreaker,如果检测到10秒内请求失败率超过50%,就会触发熔断机制,之后每个5秒重新请求微服务,如果微服务不能响应,继续走熔断机制,如果微服务可达,则关闭熔断机制,恢复正常请求。
什么是服务雪崩,怎么解决这个问题?
- 服务雪崩:一个服务失败,导致整条链路的服务都失败的情形
- 服务降级(接口):服务自我保护的一种方式,或者保护下游服务的一种方式,用于确保服务不会受到请求突增影响变得不可用,确保服务不会崩溃。(一般实际开发中与feign接口整合,编写降级逻辑)
- 服务熔断(整个服务):默认是关闭的,需要手动打开,如果检测到10秒内请求失败率超过50%,就触发熔断机制。之后每隔5秒重新尝试请求微服务,如果微服务不能响应,继续走熔断机制。如果微服务可达,则关闭熔断机制,恢复正常请求