微服务的雪崩问题:
微服务调用链路中的某个服务故障,引起整个链路种的所有微服务都不可用。这就是微服务的雪崩问题。(级联失败),具体表现出来就是微服务之间相互调用,服务的提供者出现阻塞或者故障,
或者服务的调用者没有做好异常处理,导致自身故障,导致调用链路种的级联失败,从而导致整个集群故障。
解决问题的思路有哪些?
1.尽量避免服务出现故障或者阻塞。(代码健壮,网络通畅,应对高并发。)
2.服务调用这做好远程调用的后备方案,避免故障扩散。
解决方案?
1.服务保护方案-请求限流:限制访问微服务的并发量。避免因为流量激增导致服务故障。
2.服务保护方案-线程隔离:通过限定每个业务能使用的线程数量而将故障业务隔离,避免故障扩散。
3.服务保护方案-服务熔断:由断路器统计请求的一场比例或慢调用比例,如果超出阈值则会熔断该业务,则拦截该接口的请求。熔断期间,所有请求快速失败,全部走fallback逻辑
Sentinel
簇点链路:
就是单机调用链路。是一次请求进入服务后经过的每一个被Sentinel监控的资源链。默认Sentinel会监控SpringMVC的每一个Endpoint(http接口)。
限流、熔断等都是针对簇点链路中的资源设置的。而资源名默认就是接口的请求路径。