前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生产环境秒杀接口并发量井喷,你该怎么办?

生产环境秒杀接口并发量井喷,你该怎么办?

作者头像
Tom弹架构
发布2023-09-07 10:17:03
1690
发布2023-09-07 10:17:03
举报
文章被收录于专栏:Tom弹架构Tom弹架构

生产环境秒杀接口并发量井喷,你该怎么办?

昨天有位小伙伴被面试官问到这样一个问题,说生产环境秒杀接口并发量井喷剧增,负载过高,快扛不住了,你该怎么办?你的第一反应会采取什么方案来解决?理由又是什么?

接下来,那我来分享一下我的方案。

1、解决方案

限流,先保证自己不挂;

临时动态扩容,加服务器;

分析具体原因,比如是线程池不足还是内存,GC等问题,判断是否可以做优化,比如通过异步队列,加缓存,优化数据库,无法优化的情况下,有成本考虑重构,比如做DB水平拆分,应用的垂直拆分等等,最后加成本,加机器。

遇到这样的问题,我的第一反应就是增加缓存。因为,增加缓存是解决系统性能问题最快速、最高效的方案,它能够快速提升系统的线性吞吐量,效果也最为明显。这就相当于是用空间来换时间。曾经还有人说过,缓存就是解决性能问题的万金油,哪里存在性能瓶颈就往哪里加缓存。

2

、选择理由

其实,缓存的设计思想在架构设计中是非常常见的。比如我们每天用的OS操作系统,不管是Windows还是Linux包括Mac OS都有系统缓存、用户缓存。磁盘也有磁盘缓存区、CPU有CPU有缓存区。再比如,我们常用的经典框架中,也有经常使用到缓存,Spring有IoC缓存,MyBatis有一级缓存、二级缓存。在架构设计中,可以说缓存是无处不在。

3、总结

最后,总结一下。当我们并发量过高杠不住的时候,可以优先采用缓存来缓解负载压力。比如将读取频繁的数据写到缓存中,动态页面静态化。加上缓存之后,如果负载压力依然过大;再来考虑增加限流策略,比如消息队列;如果增加限流还是压力大,最后,再考虑增加服务器节点。

好了,以上就是我对这个问题的理解。那么如果你遇到接口并发过高扛不住的时候,你的首选方案是什么呢?小伙伴们可以分享到到评论区供大家学习一下。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2023-05-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Tom弹架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档