这篇文章算是我在工作的第一个年头里关于架构方面的收获与思考的一篇总结性的文章吧,感觉还是有些深度的,所以尝试投稿到InfoQ上,果真被收录了,很开心。从7月底开始动笔,中间因为各种偷懒和一些难以预料的事情拖了很久,终于填坑完毕了。回首过去的一年,还是搞了点事情的,这是一个结束,更是一个新的开始。

1.前言

抽奖是一个典型的高并发场景应用,平时流量不多,但遇到大促活动,流量就会暴增,今年的周年庆期间的日均UV就超过百万。在过去的一年里,负责过这个项目的多次重构工作,期间各种踩坑无数,就以此文当做总结,来聊聊我们是如何架构这个高并发系统吧。

2.整体设计详解

在我看来,能提高服务器应对并发的能力的方式无非两种:

  1. 限流削峰:通过降低实际抵达服务器的并发量,降低服务器处理压力;

  2. 性能优化:从前台到硬件,优化系统各方面性能,提高服务器处理能力。

接下来我们围绕这两个方面谈谈在1号店抽奖系统中所做的工作和遇到的坑。

整体架构如下图: