一年一度的双十一购物狂欢节又要来临了,你准备好剁手了吗?我每年都要购买好几百,有时候甚至是一千多的东西。不过以前我还没有考虑过这背后的技术问题,直到最近我做了一个烂项目以及和同事谈论双十一购物效率问题时才思考了一下这个问题。
一台普通的阿里云服务器,用tomcat和nginx部署的web项目,数据库使用mysql。当数据库的数据达到几百万条时,只需要几个人同时访问页面,就会出现非常卡顿的现象,数据加载不出来,网页刷新超慢。为什么这种情况会出现呢?因为这是个烂项目,没有考虑各种高并发,海量数据,索引等技术问题。
那么,双十一那天会发生什么事情呢?2017年双十一天猫成交额1682亿,那么1682背后包含多少海量的数据,高并发查询,PV,UV等。双十一背后面临的技术问题大致分为以下几点:
双十一这几天淘宝天猫会同时有千万级的访问量,服务器是如何承载的。如我上面所说,做了个小网站,几十个人同时访问就卡顿甚至崩溃,但是双十一淘宝购物却很流畅,偶尔会有下单很卡的情况,但是基本上是不影响使用的。现在很多公司都会开发分布式集群系统,在阿里自然也是这样。这样的好处是某一台服务器挂掉了,依然不影响使用,在客户能够正常使用的情况下,我们立即去修复宕机的服务器。
另一个显著的问题就是同一时间海量的数据存储,这也是一大技术难题。阿里在Mysql的基础之上,自行研发了一套SliSql,性能比Mysql提升70%。AliSQL版本在强度和广度上都经历了极大的考验。最新的AliSQL版本不仅从其他开源分支比如:Percona,MariaDB,WebScaleSQL等社区汲取精华,也沉淀了阿里巴巴多年在MySQL领域的经验和解决方案。AliSQL增加更多监控指标,并针对电商秒杀、物联网大数据压缩、金融数据安全等场景提供个性化的解决方案。
还有一个重大的技术挑战就是双十一的零点秒杀活动,这也是双十一最核心的业务。几乎所有的等待双十一购物的同胞们,在秒杀活动开始的一瞬间,点下购买按钮抢购商品。显而易见,秒杀活动不能使用正常的网站业务流程,也不能和正常的交易业务共用服务器,必须设计专门的秒杀系统,来应对秒杀活动。秒杀活动需要面对的技术挑战有以下几点:
秒杀活动有这么多技术难点,那么阿里的大神是怎么应对这些挑战的呢?毕竟一个不慎,双十一的活动就是一地鸡毛了。在此,小编整理了几个应对策略:
诸如此类的还有很多技术难关需要攻克,小编所知也非常有限。比如近几年流行的大数据,云计算,分布式数据库,搜索引擎等这些技术早就在双十一中应用了。所以为了表示对技术人员崇高的敬意,小编决定今年双十一买一千块以上的东西。哈哈,准备剁手买买买了。