IT袋

当前位置:主页 > 经验教程 > 系统教程 >

高并发场景下如何实现系统限流

高并发场景下如何实现系统限流?

时间:2023-11-27 22:24:21 来源:IT袋 作者:马勇
导读:高并发场景下如何实现系统限流,IT袋网网为大家说一说高并发场景下如何实现系统限流的方法内容,下面小编为您详细解答 限流一般需要结合容量规划和压测来进行。 当外部请求接近或者达到系统的最

高并发场景下如何实现系统限流

IT袋网网为大家说一说高并发场景下如何实现系统限流的方法内容,下面小编为您详细解答

限流一般需要结合容量规划和压测来进行。

当外部请求接近或者达到系统的最大阈值时,触发限流,采取其他的手段进行降级,保护系统不被压垮。

常见的降级策略包括延迟处理拒绝服务随机拒绝等。

高并发场景下如何实现系统限流

计数器法

  1. 将时间划分为固定的窗口大小,例如1s
  2. 在窗口时间段内,每来一个请求,对计数器加1。
  3. 当计数器达到设定限制后,该窗口时间内的之后的请求都被丢弃处理。
  4. 该窗口时间结束后,计数器清零,从新开始计数。

滑动窗口计数法

  1. 将时间划分为细粒度的区间,每个区间维持一个计数器,每进入一个请求则将计数器加一。
  2. 多个区间组成一个时间窗口,每流逝一个区间时间后,则抛弃最老的一个区间,纳入新区间。
  3. 若当前窗口的区间计数器总和超过设定的限制数量,则本窗口内的后续请求都被丢弃。

漏桶算法

如果外部请求超出当前阈值,则会在容易里积蓄,一直到溢出,系统并不关心溢出的流量。

从出口处限制请求速率,并不存在计数器法的临界问题,请求曲线始终是平滑的。

无法应对突发流量,相当于一个空桶+固定处理线程

令牌桶算法

假设一个大小恒定的桶,这个桶的容量和设定的阈值有关,桶里放着很多令牌,通过一个固定的速率,往里边放入令牌,如果桶满了,就把令牌丢掉,最后桶中可以保存的最大令牌数永远不会超过桶的大小。

当有请求进入时,就尝试从桶里取走一个令牌,如果桶里是空的,那么这个请求就会被拒绝。

以上是IT袋网网关于高并发场景下如何实现系统限流?的技术经验小知识,以上内容供大家学习了解!

相关阅读

  • Win10设置开机启动项 如何在Win10中设置开机启动项

    Win10设置开机启动项 如何在Win10中设置开机启动项

    小编为大家说一说如何在Win10中设置开机启动项和Win10设置开机启动项方面的知识,一起来看看吧! Win10设置开机启动项 开机自启动项是指开机后会自动运行的软件或应用程序,通常会在电脑开

  • win10注册表修复命令 电脑系统注册表损坏修复方法

    win10注册表修复命令 电脑系统注册表损坏修复方法

    为网友们详解win10注册表修复命令和电脑系统注册表损坏修复方法的内容,接下来一起来看看吧。 有时我们会使用注册表来修改一些系统设置或一些文件,但有时会不小心删除了其他文件,那

  • Linux下的dd命令详解:数据备份与转换的神器

    Linux下的dd命令详解:数据备份与转换的神器

    跟大家分享Linux下的dd命令详解的电脑方面的小经验,相关内容具体如下: 在Linux环境中,dd命令是一种强大的用于转换和复制文件的工具,尤其在数据备份和恢复、数据转换等方面有着广泛的

  • win10玩2k14黑屏 win10玩不了2k15解决教程

    win10玩2k14黑屏 win10玩不了2k15解决教程

    IT袋网为大家说一说win10玩不了2k15解决教程的话题,关于win10玩2k14黑屏 win10玩不了2k15解决教程,如有不对的地方欢迎指正! nba2k15拥有强大的游戏画质,创新性的游戏按键玩法,能够让喜欢篮球