限流算法(记录cyc大佬的专栏)

限流的必要性

如果一段时间内请求的数量过大,就会给服务器造成很大压力,可能导致服务器无法提供其它服务。

计数器算法




通过一个计数器 counter 来统计一段时间内请求的数量,并且在指定的时间之后重置计数器。

该方法实现简单,但是有临界问题。例如,允许一分钟内通过的请求数为 N,如果在重置计数器的前后一小段时间内分别请求 N 次,那么在这一小段时间内总共请求了 2N 次,超出了规定的 N 次。


滑动窗口算法

是计数器算法的一种改进,将原来的一个时间窗口划分成多个时间窗口,并且不断向右滑动该窗口。


在临界位置的突发请求都会被算到时间窗口内,因此可以解决计数器算法的临界问题。

漏桶算法

能够以恒定速率处理请求。



请求需要先放入缓存中,当缓存满了时,请求会被丢弃。


令牌桶算法

和漏桶算法的区别在于它是以恒定速率添加令牌,当一个请求到来时,先从令牌桶取出一个令牌,如果能取到令牌那么就可以处理该请求。

令牌桶的大小有限,超过一定的令牌之后再添加进来的令牌会被丢弃。

令牌桶算法允许突发请求,因为令牌桶存放了很多令牌,那么大量的突发请求会被执行。但是它不会出现临界问题,在令牌用完之后,令牌是以一个恒定的速率添加到令牌桶中的,因此不能再次发送大量突发请求。

  • Leaky Bucket & Tocken Bucket - Traffic shaping

转载于:https://juejin.im/post/5caa099d6fb9a05e5b2adfac

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/279745.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

bzoj 1024 [ SCOI 2009 ] 生日快乐 —— 递归

题目:https://www.lydsy.com/JudgeOnline/problem.php?id1024 因为每次把一块切成两块,所以可以枚举从哪里切开,然后递归求解; 一开始用了不太对的贪心思路,想着一定去切较长边,但看来不一定。 代码如下&a…

HBase存储剖析与数据迁移

1.概述 HBase的存储结构和关系型数据库不一样,HBase面向半结构化数据进行存储。所以,对于结构化的SQL语言查询,HBase自身并没有接口支持。在大数据应用中,虽然也有SQL查询引擎可以查询HBase,比如Phoenix、Drill这类。但…

windows os x_如何立即在OS X上获取Windows样式的窗口捕捉

windows os xApple’s recent announcement that the upcoming OS X release (El Capitan or 10.11) will finally, at long last, come with the ability to snap windows to your screen edges. A feature Windows users have enjoyed since 2009. 苹果公司最近宣布即将发布的…

Install Odoo 11 on CentOS 7

2019独角兽企业重金招聘Python工程师标准>>> Odoo is the most popular all-in-one business software in the world. It offers a range of business applications including CRM, website, e-Commerce, billing, accounting, manufacturing, warehouse, project m…

创建maven项目,配置maven地址

2019独角兽企业重金招聘Python工程师标准>>> 在eclipse中,新建maven项目next第二步,选择webapp输入id及包名,完成新建给项目build path,添加1.8版本jdk和tomcat项目右键属性 project Facets,切换成web项目&…

如何在Excel中隐藏单元格,行和列

There may be times when you want to hide information in certain cells or hide entire rows or columns in an Excel worksheet. Maybe you have some extra data you reference in other cells that does not need to be visible. 有时您可能想在某些单元格中隐藏信息或在…

金三银四,跳槽为敬

不是不想跳,是如今的市场水冷,挪不开脚。 三月有“黄金”。 过去很多年,这个被誉为市场黄金期的阶段,最热闹的旗帜属于房地产,其次是人才市场。跳槽二字,充满诱惑。对每一个想要改变的人而言,…

yum搭建本地仓库、国内源、下载rpm包、源码安装

yum搭建本地仓库[rootlocalhost ~]# mount /dev/cdrom /mnt/mount: /dev/sr0 写保护,将以只读方式挂载cp -r /etc/yum.repos.d /etc/yum.repos.d.bak[rootlocalhost ~]# cp -r /etc/yum.repos.d/ /etc/yum.repos.d.ori/ //复制rm -f /etc/yum.repos.d/*[rootlocalh…

如何在Word文档中添加页眉或页脚

Headers and footers are useful for adding things such as page numbers, dates, file names, and disclaimers to documents. Word allows you to add headers and footers with built-in, ready-made layouts or add your own custom headers and footers. 页眉和页脚对于在…

python基础知识-8-三元和一行代码(推导式)

python其他知识目录 1、三元运算(三目运算) 三元运算符就是在赋值变量的时候,可以直接加判断,然后赋值格式:[on_true] if [expression] else [on_false]res 值1 if 条件 else 值2 其他语言类似结构:判段的…

双11成交多少和我无关,但这个魔性MV真的让我笑喷!

今年天猫双11,印象最深的就是“祝你双11快乐”这句话!它让大家感觉到双11不再只是一个购物节,而是一个能引起广泛共鸣、让大家有快乐情感的真正节日。以往的传统节日,都有一个标志性的符号,正如脑海中的每年春晚&#…

ios beta 下载_如何回滚到iOS 10(如果您使用的是iOS 11 Beta)

ios beta 下载So you’ve installed the iOS 11 beta and, well, you don’t love it. No problem, because you can roll right back to iOS 10. 因此,您已经安装了iOS 11 Beta ,但是,您不喜欢它。 没问题,因为您可以直接回滚到i…

JmsTemplate sendAndReceive 设置超时

通过调用sendAndReceive方法,实现发送消息之后可以同步接收返回信息。 Message replyMsg this.jmsQueueTemplate.sendAndReceive(new MessageCreator(){Overridepublic Message createMessage(Session sn) throws JMSException {TextMessage txtMsg sn.createText…

亚信科技数据库AntDB通过金融分布式事务数据库标准测试

近日,南京, 中国信息通信研究院云计算与大数据研究所(以下简称“中国信通院云大所”)组织专家对亚信科技(股票代码:01675.HK)的数据库产品AISWare AntDB(以下简称“AntDB”),进行了金融分布式事务数据库标准测试,所有功能顺利通过测试。该测试的通过充分彰显了亚信科技AntDB是一…

安装sql2012 需要安装net3.5 没有的话 安装不成功

Error while enabling Windows feature : NetFx3, Error Code : -2146498298 在 Windows 8 或 Windows Server 2012 中安装 .NET Framework 3.5 时出现错误代码:0x800F0906 winx 管理员权限 打开cmd命令提示符处,运行下面的命令: Dism /onl…

instagram发布工具_如何在不发布照片的情况下保存已编辑的Instagram照片

instagram发布工具Unfortunately, there’s no built-in method for saving your edited Instagram photos without posting them first. However, with this neat trick, you can add Instagram filters to your photos and save them locally to your phone without actually…

Verify the Developer App certificate for your account is trusted on your device.

1、报错内容 Could not launch “CH5203” Verify the Developer App certificate for your account is trusted on your device. Open Settings on 测试 and navigate to General -> Device Management, then select your Developer App certificate to trust it. 2、解决方…

HTTP2和HTTPS来不来了解一下?

一、前言 只有光头才能变强 HTTP博文回顾: PC端:HTTP就是这么简单PC端:HTTP面试题都在这里微信公众号端:HTTP就是这么简单微信公众号端:HTTP面试题都在这里本文力求简单讲清每个知识点,希望大家看完能有所收…

apple默认备份位置_如何将Apple Maps默认设置为步行路线

apple默认备份位置The default mode of transportation in Apple Maps is set to driving, but with a simple tweak, you can adjust your Apple Maps experience to default to the mode you use most. Apple Maps中的默认交通方式设置为行车,但是通过简单的调整&…

php 面向对象

1类的创建 class创建类 class Person{} 2.对象的创建 使用new关键字 class Person{} $p1new Person 3.成员的添加 添加成员需要 三个修饰符 public 公开的 定义公共的属性和方法,类的外部,类的内部,子类都可以使用 protected 受保护的 定义…