实现熔断、限流的底层原理是什么

简介: 实现熔断、限流的底层原理是什么

Sentinel提供多种流量 控制算法 ,包括:滑动窗口算法、令牌桶算法以及漏桶算法等。
滑动窗口算法:
是一种用于统计单位时间内请求次数的方法,用来实现限流的目的。它将时间划分为多个小的时间窗口,并在每个小窗口内记录请求的数量。当新的请求到来时,系统会检查当前小窗口内的请求数量是否超过了预设的阈值,如果超过则拒绝请求。
令牌桶算法:
核心思想是一个桶中存储了一定数量的令牌,每当有请求到达时,就需要从桶中取出一个令牌。如果没有足够的令牌,则请求被延迟或拒绝。
以固定的速率生成令牌,存入令牌桶中,如果令牌桶满了以后,多余令牌丢弃。
请求进入后,必须先尝试从桶中获取令牌,获取到令牌后才可以被处理
如果令牌桶中没有令牌,则请求等待或丢弃
在使用令牌桶算法时,可能会存在突发流量导致系统过载,所以尽量不要将令牌上限设定到服务能承受的QPS上限。而是预留一定的波动空间,这样我们才能应对突发流量。
漏桶算法:
漏桶算法与令牌桶相似,但在设计上更适合应对并发波动较大的场景,以解决令牌桶中的问题。
就是请求到达后不是直接处理,而是先放入一个队列。而后以固定的速率从队列中取出并处理请求。之所以叫漏桶算法,就是把请求看做水,队列看做是一个漏了的桶。

目录
打赏
0
0
0
0
67
分享
相关文章
【熔断限流组件resilience4j和hystrix】
【熔断限流组件resilience4j和hystrix】
238 0
服务降级和服务熔断的区别
服务降级和服务熔断的区别
高可用三大利器 — 熔断、限流和降级
在武侠世界里,“利器”通常指的是武器中的上乘、出色之物;武器对于武者的重要性不言而喻,拥有一把优秀的武器可以让武者在战斗中更加得心应手,威力更强。在分布式系统追求高可用的背景下,熔断、限流和降级这三个重要的策略可以称得上三大利器。降级和熔断是不是一回事?限流 与 降级呢?
250 2
通俗一点讲“限流熔断之Hystrix”
本篇文章用通俗的语言来讲述分布式系统中常用的限流熔断机制库Hystrix,旨在理解使用场景和原理,以及如何实现。不管你会不会敲代码,无论是大佬还是小白,力求老少皆宜。
298 0
通俗一点讲“限流熔断之Hystrix”
服务保护、服务限流、服务降级的概念|学习笔记
快速学习服务保护、服务限流、服务降级的概念
218 0
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等