Nepxion Discovery学习笔记2 服务雪崩与容错方案

目录

笔记1:

服务雪崩效应:

笔记2:

容错方案:

笔记3:

容错组件:


笔记1:

服务雪崩效应:

1.在分布式系统中,由于网络原因或自身的原因,服务一般无法保证 100% 可用。如果一个服务出现了问题,那调用这个服务就会出现线程阻塞的情况,此时若有大量的请求涌入,就会出现多条线程阻塞等

待,进而导致服务瘫痪。 由于服务与服务之间的依赖性,故障会传播,会对整个微服务系统造成灾难性的严重后果,这就是服务故障的 雪崩效应

笔记2:

容错方案:

要防止雪崩的扩散,我们就要做好服务的容错,下面介绍常见的服务容错思路和组件。常见的容错思路有隔离、超时、限流、熔断、降级这几种:

隔离

1.它是指将系统按照一定的原则划分为若干个服务模块各个模块之间相对独立,无强依赖。当有故障发生时,能将问题和影响隔离在某个模块内部,而不扩散风险,不波及其它模块,不影响整体的系统服务。

2.常见的隔离方式有:线程池隔离信号量隔离

超时

1.在上游服务调用下游服务的时候,设置一个最大响应时间,如果超过这个时间下游未作出反应就断开请求,释放掉线程

限流

1.限流就是限制系统的输入和输出流量以达到保护系统的目的。为了保证系统的稳固运行,一旦达到的需要限制的阈值,就需要限制流量并采取少量措施以完成限制流量的目的。

熔断

1.在互联网系统中,当下游服务因访问压力过大而响应变慢或失败,上游服务为了保护系统整 体的可用性,可以暂时切断对下游服务的调用。这种牺牲局部,保全整体的措施就叫做熔断

2.服务熔断一般有三种状态:

      2.1.熔断关闭状态(Closed): 服务没有故障时,熔断器所处的状态,对调用方的调用不做任何限制.

      2.2.熔断开启状态(Open): 后续对该服务接口的调用不再经过网络,直接执行本地的fallback方法.

      2.3.半熔断状态(Half-Open): 尝试恢复服务调用,允许有限的流量调用该服务,并监控调用成功率。如果成功率达到预期,则说明服务已恢复,进入熔断关闭状态;如果成功率仍旧很低,则重新进入熔断开启状态。

降级

1.降级其实就是为服务提供一个托底方案,一旦服务无法正常调用,就使用托底方案。


笔记3:

容错组件:

Hystrix : 线程池隔离/信号量隔离springcloud家族组件之一,是由Netflflix开源的一个延迟和容错库,用于隔离访问远程系统、服务或者第三方库,防止级联失败,从而提升系统的可用性与容错性.

Resilience : 信号量隔离 ; 我没用过,就不介绍了,有兴趣的伙伴可以自己去查找资料了解一下.

Sentinel : 信号量隔离(并发线程数限流); 阿里巴巴开源的一款断路器实现,以 流量 为切入点, 流量控制、熔断降级、系统负载保护等多个维度来保护服务的稳定性。本身在阿里内部已经被大规模采用,非常稳定。(推荐使用)

猜你喜欢

转载自blog.csdn.net/weixin_42585386/article/details/109219042