服务雪崩
什么叫服务雪崩,即由于一个服务影响到其他服务,从而这一整条服务链都处于未响应的状态的情况
比如下单业务,首先在订单服务保存订单,其次仓库服务减少库存,当库存服务减少库存时,仓库服务发生bug或阻塞或宕机,由于服务于服务调用之间使用http完成,则订单服务会一直阻塞状态下等待仓库服务的响应,由于tomcat线程池中线程数量有限,当线程池中线程全被占用,并且都处于阻塞状态时,其他的访问无法正常连接至服务器
像这种由于服务提供者的不可用引起的服务调用者不可用的情况称之为服务雪崩
微服务中对于服务雪崩的解决方案
sentinel
和hystrix
这两款框架都支持服务降级、服务熔断
-
服务降级
为了防止客户端一直等待服务端响应或超时响应,或服务端异常情况下,服务端能够在不参与业务的情况下直接给出一个友好的响应
-
服务熔断
服务熔断即在服务降级发生的情况下,更直接的对服务进行保护,比如服务降级发生在一定的频繁程度时,直接将该服务设为不可用状态