熔断、限流和服务降级是微服务架构中常见的三种重要的容错机制

熔断

熔断是什么

  • 熔断是一种保护机制,当某个服务调用的响应时间过长或者出现异常时,为了防止整个系统出现雪崩,暂时切断对该服务的调用
  • 熔断器会监控服务调用的状况,当检测到某个服务调用异常时,会拒绝访问该服务,快速返回一个错误响应

熔断器的状态

  • CLOSED:默认状态。断路器观察到请求失败比例没有达到阈值,断路器认为被代理服务状态良好。
  • OPEN:断路器观察到请求失败比例已经达到阈值,断路器认为被代理服务故障,打开开关,请求不再到达被代理的服务,而是快速失败。
  • HALF OPEN:断路器打开后,为了能自动恢复对被代理服务的访问,会切换到半开放状态,去尝试请求被代理服务以查看服务是否已经故障恢复。如果成功,会转成CLOSED状态,否则转到OPEN状态

    限流

  • 限流是为了保护系统,防止其被突发的流量冲击而导致服务不可用。
  • 限流通过对并发请求数或访问频率进行控制,来保护系统,避免被瞬时的流量高峰冲垮。

常见限流算法见

限流指标

  1. QPS:服务端每秒能够响应的客户端查询请求数量
  2. HPS:每秒请求数,指每秒钟服务端收到客户端的请求数量
  3. TPS:系统吞吐量

限流处理方式

  • 直接拒绝:直接返回错误信息,如HTTP 429 Too Many Requests。
  • 排队等待:将请求放入消息队列等待处理。
  • 服务降级:返回兜底数据。

限流架构

  • 网关层限流:在网关层进行限流,如Nginx、Spring Cloud Gateway。
  • 中间件限流:使用Redis等中间件进行分布式限流。

    降级

  • 服务降级是当服务器压力剧增的情况下,根据当前业务情况及流量对一些服务和页面有策略的降低服务级别。
  • 以此释放服务器资源以保证核心服务可用。服务降级一般会在保证核心功能的情况下,对非核心功能进行有策略的降级。

桃瑾
1 声望1 粉丝

常常播种,有时收获


« 上一篇
go-GC