当前位置:首页 > 科技  > 软件

五分钟技术趣谈 | 业务系统常用限流算法浅析

来源: 责编: 时间:2023-09-18 21:40:32 423观看
导读Part 01什么是限流? 业务系统限流是指系统在面临高并发或者大流量请求的情况下,限制新的请求对系统的访问,从而保证系统的稳定性和安全性。Part 02为什么要限流? 系统资源和处理能力都是有限的,如果一个系统不限制流量,比

图片vg628资讯网——每日最新资讯28at.com

Part 05

滑动窗口算法 

为了解决固定窗口算法中的临界问题,让流量限制更加平滑,产生了滑动窗口算法。该算法将固定窗口中分割出多个小窗口,分别记录每个小窗口内的访问次数,然后根据时间将窗口往前滑动并删除过期的小窗口。vg628资讯网——每日最新资讯28at.com

图片vg628资讯网——每日最新资讯28at.com

假设窗口时间还是1分钟,滑动窗口算法把它划分为6个小周期,每个小周期是10秒,对应滑动窗口被划分为6个小格子。每隔10秒时间窗口就会往右滑动一格,每个小窗口都有独立的计数器,如果请求是43秒到达的,40秒到50秒小窗口对应的计数器就会加1。vg628资讯网——每日最新资讯28at.com

我们看下滑动窗口是如何解决临界问题的,假设1分钟内的限流阀值还是10,50秒到60秒内(比如58秒的时候)来了10个请求,落在绿色格子里。时间过了60秒这个点之后又来10个请求,落在红色格子里。滑动窗口过了60秒这个点后会右移一个小格,当前的窗口时间段是10秒到70秒,这个区域的请求已经超过限定的10了,所以红色格子的请求都会被拒绝。vg628资讯网——每日最新资讯28at.com

滑动窗口算法虽然解决了临界问题,但是一旦到达限流阈值后,请求都会被直接拒绝。在实际应用中我们要的限流效果不是把流量一下子掐断,而是让流量平滑地进入系统当中。vg628资讯网——每日最新资讯28at.com

Part 06

漏桶算法 

如何更加平滑的限流,我们来看看漏桶算法。漏桶算法的限流原理可以认为就是进水漏水的过程。请求像水一样以任意速率注入漏桶,而漏桶会按照固定的速率将水漏掉;当进水速度超过漏水速度时,漏桶会装满,此后进入的水会溢出,也就是请求被丢弃。vg628资讯网——每日最新资讯28at.com

图片vg628资讯网——每日最新资讯28at.com

漏桶算法主要目的是将网络中的突发流量整合成平滑稳定的流量,不过由于漏桶对流量的控制过于严格,导致部分场景下不能充分利用系统资源。因为漏桶的漏水速率是固定的,即使在某一时刻下游系统处理能力富余,漏桶也不会允许突发流量通过。流量突发时我们希望系统在稳定的同时,能尽可能快的处理用户请求,接下来介绍的令牌桶算法能够在一定程度上解决流量突发的问题。vg628资讯网——每日最新资讯28at.com

Part 07

令牌桶算法 

令牌桶算法是对漏桶算法的一种改进,除了能够限流外,还允许一定程度的流量突发。其原理是设置一个令牌桶,以恒定速率向令牌桶放入令牌,请求到达时尝试从令牌桶中拿令牌,只有拿到令牌才能够放行,否则请求将会被拒绝。vg628资讯网——每日最新资讯28at.com

令牌桶具有以下特点:vg628资讯网——每日最新资讯28at.com

  • 根据限流大小定速往令牌桶里放令牌。
  • 如果令牌数量超过令牌桶容量的限制就丢弃令牌。
  • 每一个请求首先去令牌桶拿令牌,拿到令牌就处理请求,拿不到令牌就直接拒绝。

图片vg628资讯网——每日最新资讯28at.com

Part 08

 小结  

最后我们对上述四种限流算法进行一下简单的总结。vg628资讯网——每日最新资讯28at.com

固定窗口算法实现简单,但是流量曲线不够平滑有突刺现象,在窗口切换时可能会产生两倍阈值流量的临界问题。滑动窗口算法作为固定窗口算法的一种改进,有效解决了窗口切换时的临界问题。阿里开源的流量控制框架Sentinel就是基于滑动窗口实现的。vg628资讯网——每日最新资讯28at.com

漏桶算法能够对流量起到平滑整流的作用,让随机不确定的流量以固定的速率流出,但是不能解决流量突发问题。令牌桶算法能够在限制数据的平均传输速率的同时还允许某种程度的突发传输。Guava的RateLimiter限流组件,就是基于令牌桶算法实现的。vg628资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-10423-0.html五分钟技术趣谈 | 业务系统常用限流算法浅析

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: T·Club技术开放日杭州站精彩回顾:音视频技术创新探索与应用实践 T·Club

下一篇: Python中30个常见的内置函数使用讲解(一)

标签:
  • 热门焦点
  • 石头自清洁扫拖机器人G10S评测:多年黑科技集大成之作 懒人终极福音

    科技圈经常能看到一个词叫“缝合怪”,用来形容那些把好多功能或者外观结合在一起的产品,通常这样的词是贬义词,但如果真的是产品缝合的好、缝合的实用的话,那它就成了中性词,今
  • 7月安卓手机性能榜:红魔8S Pro再夺榜首

    7月份的手机市场风平浪静,除了红魔和努比亚带来了两款搭载骁龙8Gen2领先版处理器的新机之外,别的也想不到有什么新品了,这也正常,通常6月7月都是手机厂商修整的时间,进入8月份之
  • 如何正确使用:Has和:Nth-Last-Child

    我们可以用CSS检查,以了解一组元素的数量是否小于或等于一个数字。例如,一个拥有三个或更多子项的grid。你可能会想,为什么需要这样做呢?在某些情况下,一个组件或一个布局可能会
  • 雅柏威士忌多款单品价格大跌,泥煤顶流也不香了?

    来源 | 烈酒商业观察编 | 肖海林今年以来,威士忌市场开始出现了降温迹象,越来越多不断暴涨的网红威士忌也开始悄然回归市场理性。近日,LVMH集团旗下苏格兰威士忌品牌雅柏(Ardbeg
  • 大厂卷向扁平化

    来源:新熵作者丨南枝 编辑丨月见大厂职级不香了。俗话说,兵无常势,水无常形,互联网企业调整职级体系并不稀奇。7月13日,淘宝天猫集团启动了近年来最大的人力制度改革,目前已形成一
  • iQOO 11S评测:行业唯一的200W标准版旗舰

    【Techweb评测】去年底,iQOO推出了“电竞旗舰”iQOO 11系列,作为一款性能强机,该机不仅全球首发2K 144Hz E6全感屏,搭载了第二代骁龙8平台及144Hz电竞
  • 荣耀Magicbook V 14 2021曙光蓝版本正式开售,拥有触摸屏

    荣耀 Magicbook V 14 2021 曙光蓝版本正式开售,搭载 i7-11390H 处理器与 MX450 显卡,配备 16GB 内存与 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 键盘键程、
  • DRAM存储器10月价格下跌,NAND闪存本月价格与上月持平

    10月30日,据韩国媒体消息,自今年年初以来一直在上涨的 DRAM 存储器的交易价格仅在本月就下跌了近 10%,此次是全年首次降价,而NAND 闪存本月价格与上月持平。市
  • 北京:科技教育体验基地开始登记

      北京“科技馆之城”科技教育体验基地登记和认证工作日前启动。首批北京科技教育体验基地拟于2023年全国科普日期间挂牌,后续还将开展常态化登记。  北京科技教育体验基
Top