前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【JavaP6大纲】SpringCould篇:如何限流?在工作中是怎么做的?说一下具体的实现?

【JavaP6大纲】SpringCould篇:如何限流?在工作中是怎么做的?说一下具体的实现?

作者头像
Java廖志伟
发布2021-04-13 16:28:58
3230
发布2021-04-13 16:28:58
举报
文章被收录于专栏:高级开发进阶高级开发进阶

如何限流?在工作中是怎么做的?说一下具体的实现?

计数器:控制单位时间内的请求数量。缺陷:设每分钟请求数量为60个,每秒可以处理1个请求,用户在 00:59 发送 60 个请求,在 01:00 发送 60 个请求 此时2秒钟有120个请求(每秒60个请求),远远大于了每秒钟处理数量的阈值。 滑动窗口:滑动窗口是对计数器方式的改进, 增加一个时间粒度的度量单位。把一分钟分成若干等分(6份,每份10秒), 在每一份上设置独立计数器,在 00:00-00:09 之间发生请求计数器累加1.当等分数量越大限流统计就越详细。 Leaky Bucket漏桶:规定固定容量的桶, 有水进入, 有水流出. 对于流进的水我们无法估计进来的数量、速度, 对于流出的水我们可以控制速度. Token Bucket令牌桶:规定固定容量的桶, token 以固定速度往桶内填充, 当桶满时 token 不会被继续放入, 每过来一个请求把 token 从桶中移除, 如果桶中没有 token 不能请求。

sentinel和spring cloud gateway两个框架都是很好的限流框架。 spring cloud gateway 默认使用redis进行限流, 修改参数拿来即用。 sentinel:通过配置来控制每个url的流量。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-04-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 如何限流?在工作中是怎么做的?说一下具体的实现?
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档