程序員的疑問:12306是不是世界上最複雜的系統?
2020年馬上就要到了,今年春節也來得早一些,現在已經開始搶春運火車票了。每年這個時候,搶車票就是最大的難題,同時也是12306被人吐槽最多的時刻,很多人都認為12306系統太脆弱,事實真的是這樣嗎?
大量程序員聚集的V2EX今天有個熱帖,那就是討論“12306 是不是現在世界上業務邏輯最複雜的系統之一?”,他指出12306並發量很大,不像天貓雙十一是短時間並發,12306是一出票就是雙十一。
程序員是最了解12306系統為何這麼複雜的,而對普通人來說根據不了解12306背後需要什麼樣的技術和投入,前幾年很多人甚至吐槽12306購票系統就是大學生外包水平,言外之意就是說12306很簡單,現在大家搶不到完全是技術不行、不肯投入。
不過實情並非如此,今年10月份,12306技術部主任單杏芳介紹,12306售票系統已經成為全球最大的票務交易系統,中國人民徹夜排隊買票已經成為歷史。
單杏芳表示,12306曾經面臨最大的問題是系統擁堵,像餘票查詢這樣一個看似簡單的功能,其實是經過了技術攻克,才達到瞭如今的高效運行。
她表示,鐵路餘票計算是非常複雜的,因為我們一趟列車有多個停靠站,它是一個動態復雜計算的過程,相比簡單的商品庫存簡單加減要復雜得多,所以如果計算慢,系統可能就會忙,就會堵。所以我們研發了分佈式的內存計算的餘票計算基數,讓余票計算變得非常高效。
此外,單杏花和她的團隊還研發了異步交易排隊系統、“售取分離、讀寫分離”核心系統架構等多種技術,為12306售票系統提供技術支撐。