“12306”的架構到底有多牛逼?極限併發帶來的思考

每到節假日期間,一二線城市返鄉、外出遊玩的人們幾乎都面臨着一個問題:搶火車票!雖然現在大多數情況下都能訂到票,但是放票瞬間即無票的場景,相信大家都深有體會。尤其是春節期間,大家不僅使用12306,還會考慮“智行”和其他的搶票軟件,全國上下幾億人在這段時間都在搶票。“12306服務”承受着這個世界上任何秒殺系統都無法超越的QPS,上百萬的併發再正常不過了!筆者專門研究了一下“12306”的服務端架構,學習到了其系統設計上很多亮點,在這裏和大家分享一下並模擬一個例子:如何在100萬人同時搶1萬張火車票時,系統提供正常、穩定的服務。https://github.com/GuoZhaoran/spikeSystem

1. 大型高併發系統架構

高併發的系統架構都會採用分佈式集羣部署,服務上層有着層層負載均衡,並提供各種容災手段(雙火機房、節點容錯、服務器災備等)保證系統的高可用,流量也會根據不同的負載能力和配置策略均衡到不同的服務器上。下邊是一個簡單的示意圖:

 

 

 

1.1 負載均衡簡介

上圖中描述了用戶請求到服務器經歷了三層的負載均衡,下邊分別簡單介紹一下這三種負載均衡:

  • OSPF(開放式最短鏈路優先)是一個內部網關協議(Interior Gateway Protocol,簡稱IGP)。OSPF通過路由器之間通告網絡接口的狀態來建立鏈路狀態數據庫,生成最短路徑樹,OSPF會自動計算路由接口上的Cost值,但也可以通過手工指定該接口的Cost值,手工指定的優先於自動計算的值。OSPF計算的Cost,同樣是和接口帶寬成
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章