开发者社区> 问答> 正文

Sentinel单机模式下有哪些限流控制器?

Sentinel单机模式下有哪些限流控制器?

展开
收起
真的很搞笑 2024-05-16 22:19:06 24 0
2 条回答
写回答
取消 提交回答
  • 有多种限流控制器,包括DefaultController(滑动窗口计数器算法实现)、ThrottlingController(漏斗算法实现)、WarmUpController(带预热的限流实现,类似于Guava的RateLimiter但更关注请求数)、WarmUpRateLimiterController(低水位使用预热算法,高水位使用滑动窗口计数器算法排队)。image.png

    2024-05-17 09:36:59
    赞同 1 展开评论 打赏
  • 在Sentinel中,限流控制器主要是指用于实现不同限流策略的组件。在单机模式下,Sentinel 提供了多种限流策略来控制服务的流量。以下是几种主要的限流策略:

    1. 直接限流(Direct Control)

      • 直接限流是最基础的限流策略,它基于资源的QPS(每秒请求数)或线程数来决定是否限流。例如,可以设置一个资源每秒只允许10个请求通过。
    2. 滑动窗口限流(Slide Window Control)

      • 滑动窗口限流是基于时间窗口的限流策略,可以分为固定窗口和滚动窗口两种。它在一段时间内统计请求数量,一旦超过设定的阈值,就会开始限流。
    3. 令牌桶限流(Token Bucket Control)

      • 令牌桶算法是Sentinel中的一个重要限流策略,它维护一个令牌池,每秒按照预设速率填充令牌,请求需要消耗令牌,当令牌不足时则限流。
    4. 滑动窗口平均限流(Slide Window Average Control)

      • 此策略基于滑动窗口,但计算的是平均QPS,例如,可以在1分钟内平均不超过特定的QPS。
    5. 热点限流(Hotspot Control)

      • 热点限流主要用于限制热点资源的访问,例如,防止大量请求集中在某一特定资源上。
    6. 自适应限流(Adaptive Control)

      • 自适应限流是一种动态调整限流阈值的策略,它基于系统的实时状态(如CPU使用率、系统负载等)来调整限流策略。
    7. 资源关联限流(Resource Association Control)

      • 可以将多个资源关联起来,当其中一个资源达到限流条件时,其他关联的资源也会一起限流,实现流量的联动控制。

    在Sentinel中,这些限流策略可以通过配置FlowRule来实现,并通过FlowController来执行。在单机模式下,Sentinel会直接在本地执行这些限流决策,无需集群协调。在集群模式下,Sentinel提供了集群限流的能力,通过passClusterCheck来判断是否通过集群的限流规则,然后可能再执行本地限流规则passLocalCheck

    2024-05-17 08:34:07
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
阿里云容器 AHAS Sentinel 网关流控揭秘 立即下载
workshop专场-微服务专场-开发者动手实践营-微服务-使用Sentinel进行微服务流量控制 立即下载
Sentinel分布式系统下的流量防卫兵 立即下载