一年一度的春運來臨,上億人開啟搶票之旅,辦公室問得最多的是票搶到了嗎?對于迫切回家的異鄉遊子來說,能搶到一張票,就意味着春節能和家人團聚,可以說這搶的是一張張團圓票。火車是人們春節回家首選的交通工具,因此鐵路系統售出的火車票數量龐大,據統計,從2018年12月23号到2019年1月20号這段時間裡,國内出售了3.83億張車票,平均一天賣出1320萬張。這大部分票是從鐵路售票系統12306上賣出。12306日均頁面浏覽量達到556.7億次,最高峰時頁面浏覽量達813.4億次,1小時最高點擊量59.3億次,平均每秒164.8萬次,這是多麼高的點擊訪問量,12306系統承受不了,幾乎每年都會崩潰。
2019年,12306系統又崩潰了,這一崩潰,急壞了歸心似箭的遊子。到底是什麼原因讓這個系統崩潰了呢。
12306系統崩潰的原因
A.12306系統是個售票系統,這個系統明顯特征并發量很高。例如200W人,搶2000張票,通道上點擊和查詢的人很多,但是實際寫數據的人隻有2000個,這就要充分利用緩存。否則讓請求都壓到了後端數據層,數據讀寫鎖沖突嚴重,并發高響應慢,幾乎所有請求都超時;
B.搶票的人太多了,同一時間點,超大量的訪問點擊率(上千萬次的訪問),帶寬不夠,我們看到頁面卡住,進不了下一個頁面;
C.12306系統的服務器CPU算力不夠,處理不了那麼多數據。服務器直接卡死,導緻頁面直接崩潰;
D.黃牛黨的一些刷票軟件,每時每刻刷票,點擊訪問量驚人,人為制造網絡擁堵。
2012年,鐵路12306售票系統開始上線運行。由于系統能力較差,卡斷非常嚴重,秒級售出僅僅幾十張,低的時候甚至隻有幾張。經過這幾年不斷的優化,12306售票系統改進了很多。
怎麼保障12306系統正常運行
第1, 優化12306系統架構,讀的數據采用緩存,并且排隊進入,如果票已經搶完,表明隊排完,多餘的點擊隻顯示暫無餘票的界面,使得再多的訪問也沖擊不了緩存和數據庫;
第2, 分離票務查詢系統,12306系統已經和阿裡雲合作,把票務查詢系統搬到阿裡雲上了,這樣大大減輕了12306系統的運算負擔;
第3, 提高系統服務器的性能,服務器擴容,增加服務器的算力;
第4, 打擊那些黃牛黨和刷票助手,減少網絡擁堵,提高有效的搶票請求。
還有一個根本的原因,春節作為中華民族的傳統節日,團圓節日。很多人想回家,因為工作的地方沒有家,有家的地方沒有工作,漂泊的身軀在異鄉找不到歸屬,隻有那個魂牽夢繞的故鄉,才消解我們思鄉之情。為了過個團圓節,人們不得不從工作的地方回到老家,這樣就造成了龐大的人口流動,火車票作為最安全的出行選擇,人們都希望得到一張回家的火車票,造成一票難求的局面。還有一個提議,落實休假制度,錯開春運高峰,讓每個人都能夠選擇合适的時間與家人團結,讓團聚不在受時間的約束。
,