這篇文章算是我在工作的第一個(gè)年頭里關(guān)于架構(gòu)方面的收獲與思考的一篇總結(jié)性的文章吧,感覺還是有些深度的,所以嘗試投稿到InfoQ上,果真被收錄了,很開心。從7月底開始動(dòng)筆,中間因?yàn)楦鞣N偷懶和一些難以預(yù)料的事情拖了很久,終于填坑完畢了。回首過去的一年,還是搞了點(diǎn)事情的,這是一個(gè)結(jié)束,更是一個(gè)新的開始。

1.前言

抽獎(jiǎng)是一個(gè)典型的高并發(fā)場(chǎng)景應(yīng)用,平時(shí)流量不多,但遇到大促活動(dòng),流量就會(huì)暴增,今年的周年慶期間的日均UV就超過百萬。在過去的一年里,負(fù)責(zé)過這個(gè)項(xiàng)目的多次重構(gòu)工作,期間各種踩坑無數(shù),就以此文當(dāng)做總結(jié),來聊聊我們是如何架構(gòu)這個(gè)高并發(fā)系統(tǒng)吧。

2.整體設(shè)計(jì)詳解

在我看來,能提高服務(wù)器應(yīng)對(duì)并發(fā)的能力的方式無非兩種:

  1. 限流削峰:通過降低實(shí)際抵達(dá)服務(wù)器的并發(fā)量,降低服務(wù)器處理壓力;

  2. 性能優(yōu)化:從前臺(tái)到硬件,優(yōu)化系統(tǒng)各方面性能,提高服務(wù)器處理能力。

接下來我們圍繞這兩個(gè)方面談?wù)勗?號(hào)店抽獎(jiǎng)系統(tǒng)中所做的工作和遇到的坑。

整體架構(gòu)如下圖: