高可用三大利器 — 熔断、限流和降级

近年来,各大厂Google、微软、阿里、腾讯等都在提高可用的概念。高可用(High Availability,简称HA)是指系统或服务在遭受故障或异常情况时仍能持续提供稳定和可靠的运行能力。

在武侠世界里,“利器”通常指的是武器中的上乘、出色之物;武器对于武者的重要性不言而喻,拥有一把优秀的武器可以让武者在战斗中更加得心应手,威力更强。

在分布式系统追求高可用的背景下,熔断、限流和降级这三个重要的策略可以称得上三大利器。

熔断(Circuit Breaker):熔断是一种防止故障扩散的策略。当一个服务出现故障或超时,熔断器会打开并快速失败,拒绝后续的请求,避免请求堆积和资源耗尽。熔断器会暂时屏蔽该服务,并在一段时间后尝试恢复。熔断器的状态变化可用于监控系统健康和提供告警信息。

限流(Rate Limiting):限流是一种控制系统请求流量的策略。通过设置一个请求速率阈值,限流可以限制每个客户端或用户在特定时间内的请求次数。这样可以防止过多的请求涌入系统,保护系统免受过载和压力冲击。限流可以平滑流量,避免系统突发流量的影响。

降级(Fallback):降级是一种在面对特殊业务或异常情况时保持系统可用的策略。当服务不可用时,降级服务会代替提供一些基本功能或返回预设的默认值,以确保系统依然能够提供有限的功能或服务;又或者某些特定活动场景(例如:双十一)下优先保障计算资源投入到 业务倾向的服务,降级边缘服务。

熔断(Circuit Breaker)

在分布式架构中,一个服务通常会与多个外部服务进行交互,这些外部服务可能是RPC接口、数据库、第三方API等。例如,在支付过程中,可能需要调用银联提供的API;而查询某个商品的价格,则可能需要进行营销活动查询。然而,除了自身服务外,依赖的外部服务的稳定性是无法绝对保证。

当依赖的第三方服务出现不稳定的情况时,例如三方服务器过载,会导致服务自身调用第三方服务的响应时间也变长,甚者形成级联效应。这样一来,服务自身的线程可能会积压,最终可能耗尽业务自身的线程池,导致服务本身变得不可用。

请添加图片描述

熔断(Circuit Breaker)就是应对这种三方服务不稳定的设计,它可以帮助系统在出现问题时保持高可用,防止故障进一步扩散,同时也能在一段时间后重新尝试恢复正常操作。避免局部不稳定因素导致整个分布式系统的雪崩。作为保护服务自身的手段,通常在客户端(调用端)进行配置。

熔断器模式(Circuit Breaker Pattern),是Michael Nygard在他的著作《Release

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值