转眼间从事互联网已近10年,今天线上购物已经非常普遍。
然而,正因为越来越普及,庞大的线上客群,也给现在想要在线上开拓市场的企业和品牌,带来了新的难题,那就是一瞬间很多人下单(如秒杀),导致平台崩溃、服务器宕机或响应非常缓慢。
这就是我们常说的“高并发”问题。这就像高速公路,在传统节假日期间客流量激增,突然拥堵甚至发生事故;也正如此次疫情期间,激增的非典型肺炎患者,导致平日看似充足的医疗资源,突然变得非常紧张,最后疫情蔓延扩散超出预期。
对于经验不多的研发团队,很少考虑到“高并发”的产生;有些团队即使考虑到“高并发”可能产生,却不知道“高并发”会发生在哪些环节,以及如何打架构、设计数据库结构、或结合CDN+云服务器等去解决。
恰好今天给一位客户远程解决他公司的“高并发”问题,看了一个多小时代码架构,临时画了这张图,粗略讲解了一下他们在购物环节产生“高并发”的关键流程,总算让他们意识到架构设计上的缺陷。
线上快速沟通之后,对方是某市疫.情进出人员登记小程序,访问量从39万,暴涨到今天450万,够惊心动魄吧?服务器重启几十秒后,web服务器就会崩溃掉。
看似一个界面简单的单页面小程序,背后采用spring+redis+mysql的集成、redis做缓存,并且采用4台云服务器做了nginx负载均衡的java开发架构,依然随时崩溃。
经过7、8个小时的沟通、诊断和改进,最后从redis迁移、服务器软件配置调优、负载均衡分流、多层程序代码优化等四个方面下手,总算在晚上9点多开始运行平稳起来。
领取专属 10元无门槛券
私享最新 技术干货