Spring Cloud微服务入门(四)

应用容错的概念

应用错误-雪崩效应

        定义: 服务雪崩效应是一种因“服务提供者的不可用”(原因)导致“服务调用者不可用”(结果),并将不可用逐渐放大的现象。

        服务雪崩的过程可以分为三个阶段:

                 服务提供者不可用。

                 重试加大请求流量。

                 服务调用者不可用。

 应用错误-雪崩效应示意

应用容错 

所谓容错是指在故障存在的情况下计算机系统不失效,仍然能够正常工作的特性。容错即是Fault Tolerance,确切地说是容故障(Fault),而并非容错误(Error)。

容错解决方案

设置超时时间:

比如为每次请求设置响应时间为1S,只要释放的快,就不容易死掉。

限流:

经过评估,最大的的请求量为1000,可以设置成800,通过限制流量的进入,使服务达到不饱和状态。

仓壁模式:

不把鸡蛋放在一个篮子里,在应用程序中,使每个服务有自己独立的线程池。

断路器模式:

在微服务中,监控每个API的错误率、错误次数,达到一定的预值,就断开,不去调用远方的API。

断路器三态转换

应用容错的产品

 

解决问题:

        多样化的流量控制,提供安全可用的服务。

        提供对服务的熔断与降级,保证系统正常运行。

        系统的负载保护,在高并发、高请求的状态下,保护系统。

        提供实时的监控和控制台,可方便的对线上系统进行容错策略的调整。 

选择应用容错的产品:

        Hystrix是Spring Cloud官方集成的,但目前已经停止更新维护,所以我们就放弃。

        Hystrix停止维护后,Spring Cloud推荐使用resilience4j,但在功能上,对容错的支持并不如Sentinel。

        Sentinel是阿里推出的容错产品,目前已经开源给Apache,被Spring Cloud Alibaba集成,并且经受着每年的购物狂欢的考验,有方便的控制台和监控系统。

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-09 22:32:01       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-09 22:32:01       97 阅读
  3. 在Django里面运行非项目文件

    2024-04-09 22:32:01       78 阅读
  4. Python语言-面向对象

    2024-04-09 22:32:01       88 阅读

热门阅读

  1. Go语言支持重载吗?如何实现重写?

    2024-04-09 22:32:01       41 阅读
  2. @Transactional 详解

    2024-04-09 22:32:01       35 阅读
  3. 雷军给年轻人的五点建议

    2024-04-09 22:32:01       28 阅读
  4. playwright入门-相遇(基础篇)

    2024-04-09 22:32:01       31 阅读
  5. 热更新框架2-能够使用框架进行开发

    2024-04-09 22:32:01       33 阅读
  6. Redis是单线程,但为什么快

    2024-04-09 22:32:01       33 阅读