有多种限流控制器,包括DefaultController(滑动窗口计数器算法实现)、ThrottlingController(漏斗算法实现)、WarmUpController(带预热的限流实现,类似于Guava的RateLimiter但更关注请求数)、WarmUpRateLimiterController(低水位使用预热算法,高水位使用滑动窗口计数器算法排队)。
在Sentinel中,限流控制器主要是指用于实现不同限流策略的组件。在单机模式下,Sentinel 提供了多种限流策略来控制服务的流量。以下是几种主要的限流策略:
直接限流(Direct Control) :
滑动窗口限流(Slide Window Control) :
令牌桶限流(Token Bucket Control) :
滑动窗口平均限流(Slide Window Average Control) :
热点限流(Hotspot Control) :
自适应限流(Adaptive Control) :
资源关联限流(Resource Association Control) :
在Sentinel中,这些限流策略可以通过配置FlowRule
来实现,并通过FlowController
来执行。在单机模式下,Sentinel会直接在本地执行这些限流决策,无需集群协调。在集群模式下,Sentinel提供了集群限流的能力,通过passClusterCheck
来判断是否通过集群的限流规则,然后可能再执行本地限流规则passLocalCheck
。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。