RateLimiter 限流是保护高并发系统的三大利器之一,另外两个便是缓存与降级 顾名思义,限流即限定一定时间内处理请求的数量,限流业务场景十分普遍,如限定连接池指定时间内可获取的数量,限制瞬时并发数,也可以相应地来去做些预热操作,实现方案很多,Java中 Semaphore便是一种不错的可行方案 而 Guava中的 RateLimiter便是一种限流方案的实现,其实现思想便是基于令牌桶算法:往固定大小的一个桶中按指定速率存放令牌,桶有容量限制,溢出的令牌会被拒绝或者丢弃,到来的每一个网络请求都需要获取到桶中的一…