千家信息网

java高并发场景下的限流策略是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容主要讲解"java高并发场景下的限流策略是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java高并发场景下的限流策略是什么"吧!为什么需要限
千家信息网最后更新 2026年11月02日java高并发场景下的限流策略是什么

本篇内容主要讲解"java高并发场景下的限流策略是什么",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"java高并发场景下的限流策略是什么"吧!

为什么需要限流

举个比较简单的例子,正常来说,一个员工A他每天能够处理的工作是10个,突然某一天来了100个工作量,这时候,如果员工A还处理100个,只有一种可能,这个员工被压垮。

如果我们能预先知道会有100个任务会来,我们通过增加员工数或定义消息队列等等来临时解决。

但是我们很多时候无法预料这些意外的。根据墨菲定律,坏事往往会接踵而来,有可能某个点挂了会引起全局的挂掉(雪崩)。因此我们不得不对我们的系统做一些保护措施。限流是其中之一。

针对秒杀这类场景,我们也可以做一些限流措施,而不影响到系统全局。

限流方式之计数器(滑动窗口协议)

思路:限速,我们可能第一个想到的应该是,我通过一个计数器,进行技术,如果超过了计数器阀值,表示速度太快了。一秒一个计数器。

为了便于阅读,我只截图了主要的代码片段。

这样有个问题就是:粒度太大了,不均匀,针对1秒以下的,没法辨析。

我们能不能把粒度拆细了,1秒拆成10个100毫秒。每一个100毫秒有一个计数器。了解TCP/IP的应该知道,TCP/IP为了增加传输速度和控制传输速度,有个叫"滑动窗口协议"。

就算拆得再细,也无法解决匀速限制速度的问题。

而且还有个临界点问题,假如,一秒限制10个请求,在第1秒和第2秒之间,第1秒后半段时间10个请求,第2秒前半段10个请求,那第1秒后半段+第2秒前半段时间组成的一秒钟里就有20个请求,没有起到限速的作用。

有没有更好的办法呢?

限速方式之漏桶算法

在生活中,如果一桶有一个细眼,我们往里面装水,可以看到水是一滴一滴匀速的下落的,哪我们能不能通过程序来实现这种方式呢。

思路:桶为容器,一滴水为一请求。如果桶满了就拒绝请求,没满处理请求。

代码片段


在段代码中
  • 首先计算这次请求与上次请求来的时候,总共漏了多少水。

  • 看一下桶里面还剩多少水,有没有溢出。

  • 如果溢出了拒绝请求,如果没有添加当前一滴水。处理请求。

对于很多应用场景来说,除了要求能够限制数据的平均传输速率外,还要求允许某种程度的突发传输。这时候漏桶算法可能就不合适了,令牌桶算法更为适合。

什么意思呢?就是说我服务前面闲了很久,突然来了很多请求(在桶的容量内),我得快速的把这些处理了。

限速方式之令牌桶算法

思路:匀速的产生令牌,往桶里面丢,每次请求来,看是否有多余的令牌。如果有获取令牌执行正常业务,偌没有限速。

代码片段


通过这种方式可以允许瞬时的大量处理,然后做限速处理。
  • 请求来的时候先计算目前放入桶中的令牌数,这里计算,就可以不用启动一个线程匀速放置令牌了,这个叫惰性计算。

  • 然后计算桶拥有的令牌数。然后获取令牌。做拒绝还是处理动作。

以上代码,可在Github查看。
https://github.com/hirudy/java_lib/tree/master/src/main/java/com/hirudy/limiter

单机限速器RateLimiter

安利大家一个高效的限速器。

google的基础库guava中包含了一个基于令牌桶的限速器RateLimiter。使用也很简单。

到此,相信大家对"java高并发场景下的限流策略是什么"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
令牌 限速 处理 场景 代码 方式 计数器 员工 算法 速度 传输 策略 思路 时候 片段 问题 限速器 限制 全局 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 圆梦互联网科技 疫情对互联网科技公司影响 互联网科技金融公司 奇酷互联网络科技 掌上梦互联网科技 狮子座互联网科技培训 互联网高科技企业 互联网科技股午盘股票涨跌 中正互联网科技招聘 来此购互联网科技有限公司 中国航天科技大学国际工业互联网 电子科技大学互联网创业大赛 深圳育鹏互联网科技有限公司招聘 允成互联网科技有限公司融资 工业互联网等科技实现智能化赋能 特约风豹互联网科技为什么扣费 山东子淼互联网科技有限公司 工业互联网科技成果转化 卡尔迅互联网科技有限公司 马化腾互联网科技教学 百单网互联网科技有限公司怎么样 高科技互联网 火传媒上海互联网科技 四川狮子座互联网科技 互联网科技股午盘股票涨跌 南平创想时代互联网科技有限公司 移动互联网年度科技创新 新氧科技和美国互联网有关系吗 悟空问答互联网科技 互联网科技创业有什么好项目
0