[不懂就问] 没有高并发经验如何应对面试中的高并发问题

2020-02-20 13:55:45 +08:00
 sumarker

“金三银四”

面试了几家公司,总是问到“有没有高并发的经验”

就职过的公司要么一直是内部系统,要么就是公司规模小,用户基数不高,问到高并发确实没有什么经验,能说出来的无非就是,负载均衡把请求分流,引入缓存减少数据库压力,数据库读写分离,队列对请求削峰……

那些 QPS 动辄就百万、千万的场景到底是怎么实现的?

我自己知道的也就一个秒杀的场景,顶多是前端控制一下,缓存锁一下……

求助各位大神,面试被问高并发的问题,到底要怎么回答呀?

5251 次点击
所在节点    问与答
24 条回复
opengps
2020-02-20 14:08:09 +08:00
简单来说就是提高上限,是把系统架构设计成“加机器”能立刻应对更高压力的效果。
云的单机性能那么低,但是却成了现在主流选择,主要原因就在于扩展性,考虑周全的项目,从部署初期就负载均衡,队列,web 负载机,缓存,数据库一整套都用上了,发现某个点瓶颈立刻升级或扩容即可。
常见的升级阶段:第一步升级可能只是提高单节点配置,第二步升级是集群里加机器数量,第三步则可能针对性的优化瓶颈点。
sumarker
2020-02-20 14:26:52 +08:00
@opengps 因为我确实没高并发的经验,但站在系统层面我个人觉得,加机器的目的确实是让机器更抗压,但在一定条件下,可能也需要限流,比如热点资源。
目前能想到的例子,一个是双十一,双十二的抢购;一个是新闻热点话题;
但这两除了我之前提到的 分流,缓存,削峰限流,可能再有加机器……似乎也没有什么特别之处吧?
就面试来说,如果提到这些,是不是还会被认为是没高并发的经验的开发者呀?
opengps
2020-02-20 14:31:13 +08:00
@sumarker 没多少人有高并发经验的,秒杀之所以被拿来面试提问,那是因为最近几年大厂的活动引发的思考。

我经历过负载量增长,但并不敢说经历过高并发,高并发往往偏向于强调某个瞬间高,只要消除了单点(这点需要配合分布式锁等设计提高单点的开发能力),那么他跟高并发如出一辙: https://www.opengps.cn/Blog/View.aspx?id=279
sumarker
2020-02-20 14:40:20 +08:00
@opengps 膜拜大佬,那是不是我可以理解为 高并发主要偏向处理某时间段或时间点产生的 大量瞬时请求的问题?
opengps
2020-02-20 14:52:01 +08:00
@sumarker 面试问得高并发往往特指这种瞬间高流量,而不是持续负载大的场景
ZehaiZhang
2020-02-20 14:54:44 +08:00
面试作业帮同遇到类似问题,问的都是设计秒杀服务,高并发 Orz
sumarker
2020-02-20 15:04:54 +08:00
@ZehaiZhang 那是怎么回答的呀
ZehaiZhang
2020-02-20 15:07:27 +08:00
@sumarker 说自己读过的中间件,Nginx 预处理,redis 锁来敷衍(实际并没有用过)
across
2020-02-20 15:17:18 +08:00
自己看过书或业余接触过,却没经商业项目实践的问题,面试回答时我都会事先诚实说明下,然后讲纸上的解决思路的···
反正我是这样的,大佬们怎么应对就不知道了。
lucifer9
2020-02-20 16:00:11 +08:00
技术上都都吹一些
但其实秒杀抢购都是靠前端的吧
linxl
2020-02-20 16:03:50 +08:00
背一些文章, 一顿乱说(指望瞎猫碰到死耗子)...
sumarker
2020-02-20 16:46:52 +08:00
@ZehaiZhang redis 锁似乎倒是知道一些,中间件也没用过几个……一被深问就两眼一摸黑了
sumarker
2020-02-20 16:48:04 +08:00
@across 是啊,想去大公司,大公司要有高并发的经验,但实际没经验,要经验要去大公司……就像是恶性循环一样
sumarker
2020-02-20 16:49:01 +08:00
@lucifer9 前端其实也只是做一个限流作用,实际还是要后端处理,要是依赖前端,那数据就危险了
sumarker
2020-02-20 16:50:36 +08:00
@linxl 基本是碰不上的,一般的书太教条了,跟实际的应用有一些差距,就像现在的 spring-boot 一样,书很多,但有些书只讲一部分,还有一些坑需要自己一步一步趟过去……
lucifer9
2020-02-20 16:53:16 +08:00
@sumarker #14 有一次猴王不是被扒出来,页面点击以后直接返回已抢完,压根不去联网的
gimp
2020-02-20 17:01:50 +08:00
@lucifer9 我记的那次 😃
ZehaiZhang
2020-02-20 17:25:21 +08:00
@lucifer9 小米?
sumarker
2020-02-20 17:51:11 +08:00
@lucifer9 @gimp @ZehaiZhang 完全没印象,那是什么时候的事呀
gimp
2020-02-20 18:31:41 +08:00
搜索“小米耍猴被实锤 js”

@sumarker

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/646101

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX