RateLimiter 与 Semaphore
前言
在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。
- 缓存:缓存的目的是提升系统访问速度和增大系统处理容量
- 降级:降级是当服务出现问题或者影响到核心流程时,需要暂时屏蔽掉,待高峰或者问题解决后再打开。
- 限流:限流的目的是通过对并发访问/请求进行限速,或者对一个时间窗口内的请求进行限速来保护系统,一旦达到限制速率则可以拒绝服务、排队或等待、降级等处理。
常用的限流算法
1、漏桶算法
漏桶算法思路很简单,水(请求)先进入到漏桶里,漏桶以一定的速度出水,当水流入速度过大会直接溢出,可以看出漏桶算法能强行限制数据的传输速率。

This chapter requires login to view full content. You are viewing a preview.
Login to View Full ContentCourse Curriculum
1
编程根基:数据结构、算法与系统基础
掌握常用数据结构与算法思想,理解操作系统进程/内存管理及网络 TCP/IP 模型,为后续性能分析、并发设计和系统调优提供底层认知支撑。
2
Java 内核:JVM 与并发编程
深入 JVM 内存布局、垃圾回收机制与 Java 内存模型,熟练使用并发工具类与锁原语,写出线程安全、低延迟、可诊断的高性能 Java 代码。
3
框架与 I/O:Spring、Netty 与 Web 容器
理解 Spring Boot 自动装配、AOP 与事务原理,掌握 Netty Reactor 模型及 Tomcat 连接处理机制,构建高内聚、易扩展的应用服务层。
4
高性能中间件:消息、缓存与存储
熟练运用 MySQL 索引/事务、Redis 缓存策略、Kafka/RocketMQ 消息可靠性,以及 ZooKeeper 分布式协调,搭建稳定、解耦的分布式数据底座。
5
架构能力:高可用、DDD 与系统设计
基于领域驱动设计划分限界上下文,结合限流、熔断、多活容灾等手段,设计可演进、可观测、故障自愈的大规模业务系统。
6
云原生:容器化、可观测性与工程效能
通过 Docker/K8s 实现弹性部署,集成 Metrics/Logs/Traces 构建可观测体系,推动 DevOps 与自动化,让架构在云上持续交付与进化。