首页
题库
公司真题
专项练习
面试题库
在线编程
面试
面试经验
AI 模拟面试
简历
求职
学习
基础学习课
实战项目课
求职辅导课
专栏&文章
竞赛
我要招人
发布职位
发布职位、邀约牛人
更多企业解决方案
AI面试、笔试、校招、雇品
HR免费试用AI面试
最新面试提效必备
登录
/
注册
TIME2
电子科技大学 C++
发布于北京
关注
已关注
取消关注
@已删除:
谈谈在项目中,如何应对高并发流量
推荐阅读:为面阿里P8,我肝了一份651个技术分支的脑图,要么?(限时领) 前言 在实际项目中,曾经遭遇过线上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个请求。这里你应该能感受到,在这个临界点可能会承受恶意用户的大量请求,甚至超出系统预期的承受。 滑动窗口 “ **由于计数器存在临界点缺陷,后来出现了滑动窗口算法来解决。 ** 滑动窗口原理图 “ 滑动窗口的意思是说把固定时间片,进行划分,并且随着时间的流逝,进行移动,这样就巧妙的避开了计数器的临界点问题。也就是说这些固定数量的可以移动的格子,将会进行计数判断阀值,因此格子的数量影响着滑动窗口算法的精度。 漏桶 “ 虽然滑动窗口有效避免了时间临界点的问题,但是依然有时间片的概念,而漏桶算法在这方面比滑动窗口而言,更加先进。 有一个固定的桶,进水的速率是不确定的,但是出水的速率是恒定的,当水满的时候是会溢出的。 漏桶算法思想 代码实现 漏桶代码实现 令牌桶 “ 注意到,漏桶的出水速度是恒定的,那么意味着如果瞬时大流量的话,将有大部分请求被丢弃掉(也就是所谓的溢出)。为了解决这个问题,令牌桶进行了算法改进。 令牌桶原理 “ 生成令牌的速度是恒定的,而请求去拿令牌是没有速度限制的。这意味,面对瞬时大流量,该算法可以在短时间内请求拿到大量令牌,而且拿令牌的过程并不是消耗很大的事情。(有一点生产令牌,消费令牌的意味) 不论是对于令牌桶拿不到令牌被拒绝,还是漏桶的水满了溢出,都是为了保证大部分流量的正常使用,而牺牲掉了少部分流量,这是合理的,如果因为极少部分流量需要保证的话,那么就可能导致系统达到极限而挂掉,得不偿失。 代码实现 令牌桶代码实现 限流神器:Guava RateLimiter “ Guava不仅仅在集合、缓存、异步回调等方面功能强大(可以参考博主的《使用Google Guava快乐编程》),而且还给我们封装好了限流的API! Guava RateLimiter基于令牌桶算法,我们只需要告诉RateLimiter系统限制的QPS是多少,那么RateLimiter将以这个速度往桶里面放入令牌,然后请求的时候,通过tryAcquire()方法向RateLimiter获取许可(令牌)。 代码示例 RateLimiter 分布式场景下的限流 “ 上面所说的限流的一些方式,都是针对单机而言的,其实大部分的场景,单机的限流已经足够了。分布式下限流的手段常常需要多种技术相结合,比如Nginx+Lua,Redis+Lua等去做。本文主要讨论的是单机的限流,这里就不在详细介绍分布式场景下的限流了。 一句话,让系统的流量,先到队列中排队、限流,不要让流量直接打到系统上。 好了,到这里,本文就结束了!
点赞 0
评论 0
全部评论
推荐
最新
楼层
暂无评论,快来抢首评~
相关推荐
今天 15:31
Momenta_算法
Momenta26实习
目前虽然26届的实习还在招的只有Mstar了,要求比较高,佬们可以投投给大家详细聊一聊公司上班细节,大家可以评估下自己来了能否适应。智驾整体强度都比较大,因为基本都算初创公司,还没做到能躺着收钱的地步,凡事看两面,压力大但是能学到东西,不至于说每天干重复的东西么没有提示,工作时间10am-19pm,项目交付的时候加班就多,基本上9点左右,公司包三餐 工作再忙都要好好吃饭 公司统一使用美餐app 可以根据自己喜好来订餐到工位餐区也可以去楼下美好荟去合作商家堂食比如:老乡鸡 costa 美餐20元餐标超出部分自己补差价👇 王阿吉的快餐真的很好吃强推 )别担心会吃腻 行政小姐姐会定期更换合作商家。...
点赞
评论
收藏
分享
07-30 11:11
长安大学 产品经理
室友是友,是来搞笑的吧?
性情古怪就算了,我大学室友是我见过酒量最差的人,酒量差就算了,还经常故意发酒疯,有一次我们下完课回寝室,看见她直挺挺躺在寝室水泥地板上一动不动,我们都吓傻了好吗,她嘴里嘟嘟囔囔的,我们还以为她喝了多少,结果一看旁边桌子上放着还剩了半听的菠……萝……啤……还有一室友喜欢坐在床上打坐,然后每次有人经过的时候就突然伸出兰花指说:“消灭你!!!哔哔哔!!!”
你跟室友的关系怎么样?
点赞
评论
收藏
分享
06-04 09:27
门头沟学院 Java
所以这样的打招呼,真的不好吗😇 无面无面无面😇投了好多了
少糖去冰的小师弟很沉...:
你是我见过最强的牛客女孩
今年形式下双非本找得到工...
点赞
评论
收藏
分享
06-06 16:41
武汉理工大学 嵌入式工程师
hr直接问我要pcb板子什么情况
啥意思
能干的三文鱼刷了10...:
公司可能有弄嵌入式需要会画pcb的需求,而且pcb能快速直观看出一个人某方面的实力。看看是否有面试资格。问你问题也能ai出来,pcb这东西能作假概率不高
点赞
评论
收藏
分享
昨天 10:53
门头沟学院 客户端其它
不要怕,大胆向前走
最近有很多牛友来问我关于实习和秋招时间平衡的问题。一方面担心实习会耽误秋招的进展,另一方面担心不实习的话,秋招简历筛选都过不去。其实吧,对于我们大多数人来说,无论是否实习,最终都是为了那个offer,我也理解大家因为网上说的没有实习或实习划水,面试的时候,被面试官看破。可以类比一下四级,之前就业是不会强制要求四级的,现在呢,很多中大厂甚至小厂都要求四级要过,说到底实习也不过是筛选人的一种滤网罢了,我不推荐伪造实习,但是如果你真的认为实习对你来说很重要,那伪造也未尝不可,只要你的目标是朝着让你变得更好的方向前进,那么一切就都没问题。
吐槽集结地!!!
点赞
评论
收藏
分享
评论
点赞成功,聊一聊 >
点赞
收藏
分享
评论
提到的真题
返回内容
全站热榜
更多
1
...
百度提前批,三面被推迟一周,喜提秋招第一凉
4815
2
...
虾皮秋招一面
3124
3
...
QQ提前批一面凉经
2993
4
...
他拿大厂SSP Offer打牌是什么概念啊?25届双非之光
2636
5
...
百度提前批 三面
2288
6
...
7.30滴滴提前批一面凉经
2130
7
...
7.30百度提前批一面
1793
8
...
上班一周,工资还没拿,先欠公司两千
1511
9
...
小鹏offer
1425
10
...
大家笔试千万不要作弊
1356
创作者周榜
更多
正在热议
更多
#
简历上的经历如何包装
#
27003次浏览
772人参与
#
秋招被确诊为……
#
162754次浏览
733人参与
#
中兴秋招
#
204688次浏览
2288人参与
#
工作中哪个瞬间让你想离职
#
62030次浏览
557人参与
#
你最希望上岸的公司是?
#
134734次浏览
701人参与
#
和同事相处最忌讳的是__
#
22915次浏览
232人参与
#
你最近一次加班是什么时候?
#
70937次浏览
350人参与
#
26届的你,投了哪些公司?
#
40800次浏览
459人参与
#
你遇到最难的面试题目是_
#
16062次浏览
196人参与
#
我对___祛魅了
#
45656次浏览
420人参与
#
研究所VS国企,该如何选
#
194725次浏览
1819人参与
#
地平线求职进展汇总
#
52582次浏览
369人参与
#
如果校招重来我最想改变的是
#
271664次浏览
2849人参与
#
你跟室友的关系怎么样?
#
6650次浏览
104人参与
#
你最讨厌面试问你什么?
#
27083次浏览
303人参与
#
如果可以选,你最想从事什么工作
#
565701次浏览
4699人参与
#
海康威视求职进展汇总
#
493959次浏览
3625人参与
#
什么样的背景能拿SSP?
#
34884次浏览
211人参与
#
秋招前后对offer的期望对比
#
302954次浏览
2229人参与
#
柠檬微趣工作体验
#
6615次浏览
40人参与
#
如何快速融入团队?
#
15779次浏览
194人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务