了解什么是服务雪崩

雪崩问题: 

服务雪崩指:服务提供者不可用导致服务调用者也跟着不可用,以此类推引起整个链路中的所有微服务都不可用

释:服务提供者A因为某种原因出现故障,那么服务调用者服务B依赖于服务A的请求便无法成功调用其提供的接口,假以时日依赖于服务A的请求越来越多导致服务B的Tomcat资源耗尽,造成服务B线程阻塞,导致服务B也出现故障。那么假如服务C依赖于服务B由于服务B也出现了故障导致服务C出现故障。以此类推引起整个链路中的所有微服务都不可用。

了解什么是服务雪崩_第1张图片

解决雪崩问题的常用方式:

  • 超时处理:设定超时时间,请求超过一定时间没有响应就返回错误信息,不会无休止等待
  • 线程隔离:限定每个业务能使用的线程数,避免耗尽整个tomcat的资源,因此也叫线程隔离。
  • 熔断降级:由断路器统计业务执行的异常比例,如果超出阈值则会熔断该业务,拦截访问该业务的一切请求。 
  • 流量控制:限制业务访问的QPS,避免服务因流量的突增而故障。

超时处理:

释:服务A依赖于服务B(故障),服务A向服务B发起请求时超过设定的超时时间,它会立即结束等待,并向返回提示信息。

这种方式就不会一直占用服务资源,缓解了雪崩问题

线程隔离:

释:服务A依赖于服务B和服务C(故障),例:服务A会把Tomcat线程划分为许多的独立线程池,每个业务分配一个线程池,那么服务C故障了最多只影响服务A的部分线程。避免了服务A整个tomcat资源耗尽的情况

了解什么是服务雪崩_第2张图片

 熔断降级:

释:服务A依赖于服务B(故障),它会去统计服务A访问服务B的请求,当异常的比例超过了设定值时便会立即熔断该业务,当再次有请求需要访问服务B时它会拦截该请求并快速返回失败

了解什么是服务雪崩_第3张图片

流量控制:

释:当有大量的服务涌入服务A时,使用中间件拦截这些请求,让这些请求以服务能承受的频率去释放请求

了解什么是服务雪崩_第4张图片

你可能感兴趣的:(sentinel)