新闻动态

大流量:应对大流量高并发的常见手段:限流

发布日期:2021-01-06 09:54 | 文章来源:YINGSOO

  【温馨提醒】文章内容仅供参考,海外服务器租用\托管方案,请咨询YINGSOO客服,24小时免费电话400-630-3752

  【热门主机】香港服务器香港云主机

  【热搜问题】香港虚拟空间哪个好

大流量

  前言:

  在实际项目中,曾经遭遇过线上5w+Qps的峰值,也在压测状态下经历过10w+Qps的大流量请求,主要就是自己对高并发流量控制的一点思考。

  应对大流量的一些思路

  首先,我们来说一下什么是大流量?

  大流量,我们很可能会冒出:tps(每秒事务量),Qps(每秒请求量),1w+,5w+,10w+,100w+...。其实并没有一个绝对的数字,如果这个量造成了系统的压力,影响了系统的性能,那么这个量就可以称之为大流量了。

  其次,应对大流量的一些常见手段是什么?

  缓存:说白了,就是让数据尽早进入缓存,离程序近一点,不要大量频繁的访问db。

  降级:如果不是核心链路,那么就把这个服务降级掉。打个比喻,现在的App都讲究千人千面,拿到数据后,做个性化排序展示,如果在大流量下,这个排序就可以降级掉!

  限流:大家都知道,北京地铁早高峰,地铁站都会做一件事情,就是限流了!想法很直接,就是想在一定时间内把请求限制在一定范围内,保证系统不被冲垮,同时尽可能提升系统的吞吐量。

  注意到,有些时候,缓存和降级是解决不了问题的,比如,电商的双十一,用户的购买,下单等行为,是涉及到大量写操作,而且是核心链路,无法降级的,这个时候,限流就比较重要了。

  那么接下来,我们重点说一下,限流。

  限流的常用方式

  限流的常用处理手段有:计数器、滑动窗口、漏桶、令牌。

  计数器

  计数器是一种比较简单的限流算法,用途比较广泛,在接口层面,很多地方使用这种方式限流。在一段时间内,进行计数,与阀值进行比较,到了时间临界点,将计数器清0。

  代码实例

  这里需要注意的是,存在一个时间临界点的问题。举个栗子,在12:01:00到12:01:58这段时间内没有用户请求,然后在12:01:59这一瞬时发出100个请求,oK,然后在12:02:00这一瞬时又发出了100个请求。

  这里你应该能感受到,在这个临界点可能会承受恶意用户的大量请求,甚至超出系统预期的承受。

  滑动窗口

  由于计数器存在临界点缺陷,后来出现了滑动窗口算法来解决。

  滑动窗口的意思是说把固定时间片,进行划分,并且随着时间的流逝,进行移动,这样就巧妙的避开了计数器的临界点问题。也就是说这些固定数量的可以移动的格子,将会进行计数判断阀值,因此格子的数量影响着滑动窗口算法的精度。

  漏桶

  虽然滑动窗口有效避免了时间临界点的问题,但是依然有时间片的概念,而漏桶算法在这方面比滑动窗口而言,更加先进。

  有一个固定的桶,进水的速率是不确定的,但是出水的速率是恒定的,当水满的时候是会溢出的。

  代码实现

  令牌桶

  注意到,漏桶的出水速度是恒定的,那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就[泰国物理服务器]是所谓的溢出)。为了解决这个问题,令牌桶进行了算法改进。

  生成令牌的速度是恒定的,而请求去拿令牌是没有速度限制的。这意味,面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,而且拿令牌的过程并不是消耗很大的事情。(有一点[ddos防御方案]生产令牌,消费令牌的意味)

  不论是对于令牌桶拿不到令牌被拒绝,还是漏桶的水满了溢出,都是为了保证大部分流量的正常使用,而牺牲掉了少部分流量,这是合理的,如果因为极少部分流量需要保证的话,那么就可能导致系统达到极限而挂掉,得不偿失。

  代码实现

  限流神器:guava RateLimiter

  guava不仅仅在集合、缓存、异步回调等方面功能强大,而且还给我们封装好了限流的Api!

  guava RateLimiter基于令牌桶算法,我们只需要告诉RateLimiter系统限制的Qps是多少,那么RateLimiter将以这个速度往桶里面放入令牌,然后请求的时候,通过tryAcquire()方法向RateLimiter获取许可(令牌)。

  代码示例

  分布式场景下的限流

  上面所说的限流的一些方式,都是针对单机而言的,其实大部分的场景,单机的限流已经足够了。分布式下限流的手段常常需要多种技术相结合,比如nginx+Lua,Redis+Lua等去做。

  本文主要讨论的是单机的限流,这里就不在详细介绍分布式场景下的限流了。

  一句话,让系统的流量,先到队列中排队、限流,不要让流量直接打到系统上。

  本公司在全球超过120个国家部署数据中心,提供海外全球多个国家服务器租用,所有服务器均可根据需求配置大带宽大流量,美国g口独享大带宽服务器,从此告别网络拥堵;

  

  美国服务器的访问速度快[区块链服务商]

  美国机房在硬件设备和服务器的硬件配置上都是比较好的,美国也是属于数据处理的一个中心地区。那么美国服务器的访问速度快么?

  提到美国服务器的访问速度的问题,相信很多人的第一反应就是,美国服务器的访问速度很慢。当然说道访问速度,还是得从使用者的位置和服务器的带宽大小来定义。

  影响因素一:物理距离

  这个物理距离是用户相对于美国距离来定的,物理距离越远访问速度也会相对要慢一些,对于距离美国物理距离较近的用户,在访问速度也会相对快一些。例如:美国地区的用户直接访问美国本地的服务器,大陆用户访问美国服务器,在访问速度上就会因为物理距离的原因存在快慢一说。

  影响因素二:带宽配置

  使用过服务器的站长应该了解,一台服务器的带宽配置大小会直接影响到服务器的访问稳定性及访问速度。如果带宽充足的情况下,用户访问主机时也会更稳定快速一些。带宽过小,就会造成用户访问速度慢或访问卡顿,无法访问的情况。所以带宽的大小配置也是比较关键的,目前对于带宽配置,美国机房有推出无限流量的服务器配置,在流量的使用上会更便捷一些。

  针对于以上两个影响因素,再去思考美国服务器的访问速度的快慢问题,这[广州服务器]样是否会更清晰一些了呢。当然关于物理距离因素导致的大陆用户访问过慢的问题,也是可以通过使用美国直连大陆的CN2线路来解决的哦。

  YINGSOO官网:www.Yingsoo.com

  热门文章:【lol从聊天服务器断开】【香港服务器国内加速】【2U服务器托管】【美国10G口大带宽服务器速度快到想不到】【硬盘阵列故障】【宿迁IDC】【使用美国高防服务器建外贸网站的优缺点】【亚马逊微软都在华投资】【云服务器品牌】【私服服务器】【ntp服务器】【云服务器有哪些系统】【买个服务器需要多少钱】【Core i3】【为什么选择美国虚拟主机】【共享虚拟主机能干嘛】【vps 国外服务器】【带宽配置费用】【500M便宜服务器】【传奇服务器维护】【高防服务器多少钱一套】【香港站群服务器应用】【机架式服务器和刀片式服务器的区别】【腾讯云服务器云服务器】【做游戏选择什么服务器】【美国虚拟主机空间】【台湾服务器租用价格贵不贵】【带宽租用】【集群服务器】【国外网页代理服务器

  YINGSOO美国网站主机租用_免费CC防御流量_无需备案

  美国网站主机租用美国vps超宽国际出口 , 一手资源 , 重装系统 , 10MB独享带宽 ,在线有重启 , 无极网络 , 高速稳定,年付8.3折优惠

  https://www.yingsoo.com/products/cloud-us.html

  YINGSOO韩国不限流主机3天免费试用,注册享特惠!

  韩国不限流主机控制面板自主管理,5分钟交付,KT高品质机房,平均延迟低至80ms,2019年韩国不限流主机销量再度破表,1200家企业共同选择,高达95%的续约率印证YINGSOO品质

  https://www.yingsoo.com/products/cloud-kr.html

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部