熔断,限流,降级(技术选型)

1. Sentinel
  • Sentinel 是阿里巴巴开源的限流、熔断、降级组件,旨在为分布式系统提供可靠的保护机制。
  • 它设计用于解决高并发流量下的稳定性问题,并且支持与 Dubbo、Spring Cloud 等多种框架集成。

Sentinel 的功能:home | Sentinel

  1. 限流:支持基于 QPS(每秒查询数)、并发数量等条件的限流。支持滑动窗口、预热、漏桶等算法。
  2. 熔断降级:支持失败率、慢调用比例等指标触发熔断,并提供自动恢复机制。
  3. 热点参数限流:可以基于特定的参数进行限流,如限制特定用户 ID 的请求频率。
  4. 系统负载保护:可以根据系统的实际负载(如 CPU、内存)动态调整流量。
  5. 丰富的规则配置:通过配置中心或控制台动态调整限流和熔断规则。

优势

  • 功能丰富、提供控制台、更新较频繁、社区活跃、文档清晰,能够快速入门上手。
2. Hystrix

Hystrix 是什么? GitHub - Netflix/Hystrix: Hystrix is a latency and fault tolerance library designed to isolate points of access to remote systems, services and 3rd party libraries, stop cascading failure and enable resilience in complex distributed systems where failure is inevitable.

  • Hystrix 是 Netflix 开源的一个限流、熔断和降级库。
  • 它通过熔断器模式在检测到下游服务失败率过高时中断请求,以防止系统资源耗尽。

目前已经停止维护

3、Resilience4j

GitHub - resilience4j/resilience4j: Resilience4j is a fault tolerance library designed for Java8 and functional programming

Resiience4j 是一个轻量级的熔断、限流、隔离、重试库,它设计灵感来源于 Netflix 的 Hystrix 框架,专门设计为响应式编程和 Java 8+风格下的熔断库。

优点: 它很轻量级,没有外部依赖,特别适合响应式编程风格,

缺点: 相比 Sentinel,功能相对较少,尤其在限流功能上不够丰富。

4、Guava RateLimiter

Ratelimiter 是 Guava 提供的一个限流工具,基于令牌桶算法实现,主要用于对系统的流量进行控制。

缺点:它仅支持限流,且功能相对单一,不能处理熔断等复杂场景。适合不需要复杂熔断或隔离功能的小型项目,主要用于 单机系统 的流量控制。

5、Redisson RRateLimiter

Redisson 是一个基于 Redis 的 Java 驱动程序,它提供了丰富的分布式工具和数据结构,其中包括分布式锁、计数器、队列、信号量,以及限流(Rate Limiter)等功能。

Redisson 提供了 Ratelimiter 接口来支持限流操作。你可以定义时间窗口内允许的最大请求数,超出限制的请求将被阳塞或拒绝。它的限流基于 Redis 的计数器来控制访问频率,确保即使在多台服务器之间,也能有效地限制请求速率。

总结

  • Sentinel 是目前最成熟、功能最强大的分布式限流、熔断、降级组件,适合大规模分布式系统。
  • Resilience4j 专为响应式编程设计,适合轻量级应用和微服务架构。
  • Guava RateLimiter 适合单机环境下的简单限流需求。
  • Redisson RRateLimiter 适合已有 Redis 基础设施的分布式系统,提供高效的分布式限流功能。
  • Hystrix 已经停止维护,建议在新项目中避免使用,但对于遗留系统可以继续维护。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值