Sentinel限流算法总结-四、漏桶算法

时间:2024-07-08 07:05:25

漏桶算法与令牌桶相似,但在设计上更适合应对并发波动较大的场景。

简单来说就是请求到达后不是直接处理,而是先放入一个队列。而后以固定的速率从队列中取出并处理请求。之所以叫漏桶算法,就是把请求看做水,队列看做是一个漏了的桶。
如图:
在这里插入图片描述
说明:

  • 将每个请求视作"水滴"放入"漏桶"进行存储;
  • "漏桶"以固定速率向外"漏"出请求来执行,如果"漏桶"空了则停止"漏水”;
  • 如果"漏桶"满了则多余的"水滴"会被直接丢弃。

漏桶的优势就是流量整型,不管并发量如何波动,经过漏桶处理后的请求一定是相对平滑的曲线。

sentinel限流中的排队等待功能正是基于漏桶算法实现的。