服务器之家:专注于服务器技术及软件下载分享
分类导航

云服务器|WEB服务器|FTP服务器|邮件服务器|虚拟服务器|服务器安全|DNS服务器|服务器其它|

服务器设计方案之应用限流

2019-05-28 09:19来源:优普学堂所属分类:服务器其它

在一个高并发系统中对流量的把控是非常重要的,当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用,不处理的话甚至会造成整个应用不可用。

在一个高并发系统中对流量的把控是非常重要的,当巨大的流量直接请求到我们的服务器上没多久就可能造成接口不可用,不处理的话甚至会造成整个应用不可用。

比如最近就有个这样的需求,我作为客户端要向kafka生产数据,而kafka的消费者则再源源不断的消费数据,并将消费的数据全部请求到web服务器,虽说做了负载(有4台web服务器)但业务数据的量也是巨大的,每秒钟可能有上万条数据产生。如果生产者直接生产数据的话极有可能把web服务器拖垮。

服务器设计方案之应用限流

对此就必须要做限流处理,每秒钟生产一定限额的数据到kafka,这样就能极大程度的保证web的正常运转。

其实不管处理何种场景,本质都是降低流量保证应用的高可用。

常见算法

对于限流常见有两种算法:

漏桶算法

令牌桶算法

漏桶算法比较简单,就是将流量放入桶中,漏桶同时也按照一定的速率流出,如果流量过快的话就会溢出(漏桶并不会提高流出速率)。溢出的流量则直接丢弃。

如下图所示:

服务器设计方案之应用限流

这种做法简单粗暴。

漏桶算法虽说简单,但却不能应对实际场景,比如突然暴增的流量。

这时就需要用到令牌桶算法:

令牌桶会以一个恒定的速率向固定容量大小桶中放入令牌,当有流量来时则取走一个或多个令牌。当桶中没有令牌则将当前请求丢弃或阻塞。

相比之下令牌桶可以应对一定的突发流量.

服务器设计方案之应用限流

RateLimiter实现

对于令牌桶的代码实现,可以直接使用Guava包中的RateLimiter。

服务器设计方案之应用限流

调用结果如下:

服务器设计方案之应用限流

代码可以看出以每秒向桶中放入两个令牌,请求一次消耗一个令牌。所以每秒钟只能发送两个请求。按照图中的时间来看也确实如此(返回值是获取此令牌所消耗的时间,差不多也是每500ms一个)。

使用有几个值得注意的地方:

允许先消费,后付款,意思就是它可以来一个请求的时候一次性取走几个或者是剩下所有的令牌甚至多取,但是后面的请求就得为上一次请求买单,它需要等待桶中的令牌补齐之后才能继续获取令牌。

总结

针对于单个应用的限流够用了,如果是分布式环境可以借助Redis来完成。

延伸 · 阅读

精彩推荐
  • 服务器其它出现RPC服务器不可用的解决方法

    出现RPC服务器不可用的解决方法

    出现 RPC服务器 不可用 的解决方法 RPC服务器,是指Remote Procedure Call Protocol,中文释义为(RFC-1831)远程过程调用协议:一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协...

    互联网 177 2019-05-22
  • 服务器其它网站服务器是什么 网站服务器怎么搭建

    网站服务器是什么 网站服务器怎么搭建

    IIS,Internet Information Server,是微软公司推出的Web服务器程序。安装Windows 2000 Server或Windows 2000 Advanced Server时,将自动安装IIS 并建立默认的站点。下面小编主要为您介绍网站服务器的搭建与配置。...

    IT百科 83 2019-05-16
  • 服务器其它解决RPC服务器不可用Windows time服务无法启动

    解决RPC服务器不可用Windows time服务无法启动

    Windows有开机自动同步时间的功能,自动与internet时间服务器同步,但点击同步时提示 RPC服务器不可用 怎么办?即使RPC服务已经启动了,还是提示提示RPC服务器不可用怎么解决? RPC服务器不可用Windows time服务无法启动解决方法: 网上...

    百度经验 490 2019-05-22
  • 服务器其它服务器是租用还是服务器托管好?

    服务器是租用还是服务器托管好?

    很多企业在选择网站的服务器托管方案时都会感到特别地没头绪,是租用好呢,还是服务器托管好呢,这个问题一直以来都困扰着企业者。 其实这两者之间各有好坏,今天就为大家讲解一下这两者的区别,它们的各自优势和缺点是...

    天下数据 151 2019-05-16
  • 服务器其它服务器运维我为什么不特别爱用Web面板

    服务器运维我为什么不特别爱用Web面板

    所谓的服务器 Web 控制面板其实就是通过 Web 端的访问来轻松管理服务器,提升运维效率。例如:创建管理网站、FTP、数据库,拥有可视化文件管理器,可视化软件管理器,可视化 CPU、内存、流...

    图设信息技术 311 2019-05-28
  • 服务器其它rpc服务器不可用解决办法

    rpc服务器不可用解决办法

    Win7提示 rpc服务器不可用 时该如何解决呢?通常我们在安装打印机或者虚拟磁盘时,将出现此提示。对应的解决方法如下。 rpc服务器不可用解决办法 打开运行窗口,可以按Windows+R快速打开运行窗口,输入services.msc来打开服务窗口。...

    服务器之家 499 2019-05-22
  • 服务器其它利用FTP和计划任务自动备份网站数据和数据库

    利用FTP和计划任务自动备份网站数据和数据库

    相信很多朋友都安装的CentOS吧,切忌一句话,无论多牛的IDC总会有跑路的一天,所以经常做好备份是最好的。 一、给VPS安装Email发送程序 yum install sendmail mutt 二、安装FTP客户端程序 本脚...

    Tingel 118 2019-05-11
  • 服务器其它服务器机柜哪个牌子好,如何选择?

    服务器机柜哪个牌子好,如何选择?

    机柜的种类在现在市场中有很多种,在具体了解服务器机柜哪个牌子好的时候,还可以从市场口碑和评价上来了解。其实,掌握对了选择方式都可以保障机柜在使用的时候发挥更好的作用,我们...

    服务器之家 423 2019-05-26