高并发系统限流策略中,漏桶与令牌桶原理及源码解析是怎样的?

更新于
2026-10-03 01:51:27
24阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计5550个文字,预计阅读时间需要23分钟。

高并发系统限流策略中,漏桶与令牌桶原理及源码解析是怎样的?

前言,哈喽,大家好,我正在学习技术。这是我的编程系列文章第五篇,今天与大家聊聊高并发系统中的限流技术,限流又称流量控制。


前言

哈喽,大家好,我是正在学习​​PS​​​技术的​​asong​​​,这是我并发编程系列的第​​5​​篇文章,今天与大家聊一聊高并发系统中的限流技术,限流又称为流量控制,是指限制到达系统的并发请求数,当达到限制条件则可以拒绝请求,可以起到保护下游服务,防止服务过载等作用。常用的限流策略有漏桶算法、令牌桶算法、滑动窗口;下文主要与大家一起分析一下漏桶算法和令牌桶算法,滑动窗口就不在这里这介绍了。好啦,废话不多话,开整。

漏桶算法

漏桶算法比较好理解,假设我们现在有一个水桶,我们向这个水桶里添水,虽然我们我们无法预计一次会添多少水,也无法预计水流入的速度,但是可以固定出水的速度,不论添水的速率有多大,都按照固定的速率流出,如果桶满了,溢出的上方水直接抛弃。我们把水当作​​HTTP​​请求,每次都把请求放到一个桶中,然后以固定的速率处理请求,说了这么多,不如看一个图加深理解(图片来自于网络,手残党不会画,多多包涵):


原理其实很简单,就看我们怎么实现它了,​​uber​​​团队有一个开源的​​uber-go/ratelimit​​库,这个库就是漏桶的一种实现,下面我们一起来看一看他的实现思路。

阅读全文

本文共计5550个文字,预计阅读时间需要23分钟。

高并发系统限流策略中,漏桶与令牌桶原理及源码解析是怎样的?

前言,哈喽,大家好,我正在学习技术。这是我的编程系列文章第五篇,今天与大家聊聊高并发系统中的限流技术,限流又称流量控制。


前言

哈喽,大家好,我是正在学习​​PS​​​技术的​​asong​​​,这是我并发编程系列的第​​5​​篇文章,今天与大家聊一聊高并发系统中的限流技术,限流又称为流量控制,是指限制到达系统的并发请求数,当达到限制条件则可以拒绝请求,可以起到保护下游服务,防止服务过载等作用。常用的限流策略有漏桶算法、令牌桶算法、滑动窗口;下文主要与大家一起分析一下漏桶算法和令牌桶算法,滑动窗口就不在这里这介绍了。好啦,废话不多话,开整。

漏桶算法

漏桶算法比较好理解,假设我们现在有一个水桶,我们向这个水桶里添水,虽然我们我们无法预计一次会添多少水,也无法预计水流入的速度,但是可以固定出水的速度,不论添水的速率有多大,都按照固定的速率流出,如果桶满了,溢出的上方水直接抛弃。我们把水当作​​HTTP​​请求,每次都把请求放到一个桶中,然后以固定的速率处理请求,说了这么多,不如看一个图加深理解(图片来自于网络,手残党不会画,多多包涵):


原理其实很简单,就看我们怎么实现它了,​​uber​​​团队有一个开源的​​uber-go/ratelimit​​库,这个库就是漏桶的一种实现,下面我们一起来看一看他的实现思路。

阅读全文