← 返回专栏列表

调度与限流系列

共 7 篇文章

1. 调度与限流 #01:时间轮(Hashed Timing Wheel)

> 时间轮(Hashed Timing Wheel)是一种 O(1) 插入/删除的定时任务调度算法,被 Netty、Kafka、Linux 内核等广泛用于高并发延迟任务场景。 相关文章:层级时间轮 · 最小堆定时器 !timing wheel 目录 | 章节 | 说明 | |------|------| | 问题背景 …

2. 调度与限流 #02:层级时间轮

> 层级时间轮(Hierarchical Timing Wheel)通过多层表盘结构将大延迟任务分级存储,彻底消除单层时间轮 round 计数带来的 O(N) 扫描退化问题;Kafka、Netty、Linux 内核定时器均采用此结构。 相关文章:时间轮(Hashed Timing Wheel) · 最小堆定时器 ---…

3. 调度与限流 #03:最小堆定时器

> 最小堆定时器以 PriorityQueue<TimerTask> 为核心,堆顶始终是最近到期任务,插入 O(log N)、取消 O(log N);JDK ScheduledThreadPoolExecutor 的 DelayedWorkQueue 以及几乎所有操作系统内核早期定时器均基于此结构。 相关文章:时间轮(…

4. 调度与限流 #04:令牌桶

> 令牌桶(Token Bucket)以固定速率向桶中注入令牌、请求消耗令牌的方式实现限流,允许一定程度的突发流量;Guava RateLimiter、AWS API Gateway、Nginx(ngx_stream_limit_conn)等广泛采用此模型。 相关文章:漏桶 · 滑动窗口计数器 · 滑动窗口日志 !to…

5. 调度与限流 #05:漏桶

> 漏桶(Leaky Bucket)将请求放入有界队列,以固定速率匀速处理,无论输入多快输出永远恒定;Nginx 、TCP 流量整形、QoS 调度广泛采用此模型。 相关文章:令牌桶 · 滑动窗口计数器 · 滑动窗口日志 !leaky bucket --- 目录 | 章节 | 说明 | |------|------| |…

6. 调度与限流 #06:滑动窗口计数器

> 滑动窗口计数器将时间轴切成多个细粒度小格,始终统计最近 N 个格的请求总数,彻底消除固定窗口边界处双倍流量的突发问题;Nginx 、Redis Cell、Sentinel 等限流组件均采用此思路。 相关文章:令牌桶 · 漏桶 · 滑动窗口日志 !sliding window counter --- 目录 | 章节 …

7. 调度与限流 #07:滑动窗口日志

> 滑动窗口日志为每个请求精确记录时间戳,判断「最近 windowSize 时间内的请求数」是否超限,实现零误差的速率控制;Twitter、Stripe、Cloudflare 等 API 网关广泛采用此方案处理严格限流场景。 相关文章:令牌桶 · 漏桶 · 滑动窗口计数器 !sliding window log ---…