要問現在最受用戶吐槽的國產軟件,可能是微信,盡管不斷上線新功能,但大多被網友吐槽 " 沒用 ",并且在一次次的更新中變得更加臃腫,占用內存越來越多,導致用戶頻頻抱怨手機空間不夠用。
而要問在用戶的吐槽聲中越做越好的軟件,那一定是 12306 平臺。早些年間,12306 在運行中出現了很多瑕疵,比如復雜晦澀的交互界面、系統響應卡頓延遲、宕機不斷等。人們為了省時省事,寧愿多花錢去使用各種搶票軟件或找黃牛,都不愿在 12306 上購票。被罵了十年不吭一聲,12306 最終咸魚翻身做成世界之最。
數據顯示,12306 平臺已成為世界上規模最大的鐵路互聯網售票系統,注冊用戶已達 6.8 億,單日售票能力達 2000 萬張以上。鐵路 12306 App 下載安裝累計已達 17 億多次,12306 網站(含手機 App)最高日訪問量高達 2000 億次,單日最高售票量 1541.3 萬張,年度最高售票量達 35.7 億張。

如今,12306 超越市場上各大搶票軟件,成為搶票效率和成功率最高的平臺。而時間回溯 12306 剛上線的那幾年,別說搶票,很多人連網站都登不上去。
趁此機會,讓我們回顧一下網絡購票的發展歷程,看看 12306 是否值得 " 世界第一 " 的稱號。
12306 系統上線前,中國鐵路曾經推出過 95105105 的訂票熱線,比起線下排長隊購票方便了不少,但遇到春節這種節日,訂票電話很難打通。
2000 年,北京曾嘗試搭建網絡訂票系統,上線了 " 首鐵在線 "。當時黃牛買票也得排隊,大家對于網絡購票的需求幾乎沒有,并且大部分人網速只有可憐的 100k。即便如此,一個 " 五一 " 小長假,仍使得首鐵在線的系統癱瘓掉。經過一系列搶修之后,首鐵在線在 " 正常和癱瘓之間 " 堅持了 8 年。

2008 年春運前夕,首鐵在線宣布放棄網絡訂票業務,只提供部分信息查詢服務。理由是:網站登錄人員過多,造成服務器癱瘓。
此后,上海在 2009 年上線了一套網絡購票系統,并且提供送票上門服務。遺憾的是,這套系統上線僅一天,就因為系統故障關閉升級,此后再無下文。

2010 年,隨著 3G 網絡的普及,當時的鐵道部宣布,中國要開始通過網絡購票的方式進行售賣火車票。
同年 1 月 30 日,也就是當年春運的第一天,鐵道部開放并試運營了 12306。而當時的 12306 并不具備網絡購票的功能,只能查詢列車時刻、票價、余票、代售點和正晚點等信息。
2011 年 6 月 1 日,在民眾對網絡購票的極大需求與期盼中,12306 網站正式上線。然而 2012 年春運,也就是 12306 面臨的第一次大考,結果并未令人滿意。
服務器幾度崩潰,很多人進不了網頁;好不容易進去了,要么就刷不出車次信息要么就點擊不了購票按鈕;甚至還有人出現了搶到票無法支付,或者支付后拿不到票的窘境。
值得一提的是,2011 年也是淘寶 " 雙 11" 上線之時。
有人疑惑,為什么雙 11 的數據同樣巨大,可淘寶雖然卡,卻沒有崩?甚至還有人吐槽 12306 購票系統就是大學生外包水平。言外之意,12306 很簡單,現在大家搶不到完全是技術不行、不肯投入。
其實這里 12306 被誤解得有點深。曾有程序員提出 "12306 可能是現在世界上業務邏輯最復雜的系統之一 "。其表示,12306 并發量很大,不像天貓雙十一是短時間并發,12306 是一出票就是雙十一。要知道,12306 最多的時候,幾億人同時搶票,任何程序員面對一個每天上億日活、百萬級并發量的網站,可能頭疼不已。

據了解,12306 除了線上訂單以外,還要兼顧線下訂單所形成的數據,包括一條線路各個站之間的最優售票計算,各個站點的余票量計算,業務非常復雜。
就拿余票查詢這樣一個看似簡單的功能而言,其實是經過了技術攻克,才達到了如今的高效運行。
12306 技術部主任單杏芳曾表示,鐵路余票計算是非常復雜的,因為我們一趟列車有多個停靠站,它是一個動態復雜計算的過程,相比簡單的商品庫存簡單加減要復雜得多,所以如果計算慢,系統可能就會忙,就會堵。所以我們研發了分布式的內存計算的余票計算基數,讓余票計算變得非常高效。
可見,12306 比淘寶雙十一的技術挑戰更大。

12306 建設初期體系架構示意圖 圖源 Coder 的技術之路

第一次優化后的 12306 體系架構 圖源 Coder 的技術之路

第二次優化后的 12306 體系架構 圖源 Coder 的技術之路
當然了,程序員肯定是最了解 12306 系統為何這么復雜的,但對普通人來說根本不了解 12306 背后需要什么樣的技術和投入,畢竟時常搶不到票也是事實。
而自第一次春運首秀后數年的春運期間,12306 都會很穩定地告訴我們,想如愿搶到票不容易。
例如在 2013 年春運來臨的前幾日,12306 在 3 天之內前后發出兩次公告稱,因硬件設備故障 / 機房空調系統故障,正組織搶修,暫停互聯網售票服務。

2013 年 12 月 6 日,12306 進行了第一次改版,改版之后的 12306 增加了自動查詢、自動提交訂單、有票提醒等功能,但是此時的 12306 還不具備線上自主選座的功能。
在 12306 網頁改版兩天之后,12306 客戶端正式開放下載,從此線上購票擺脫了電腦端的限制正式進入了移動端。
改版升級之后的 12306 也時不時會出現系統宕機與崩潰的情況,一直到 2014 年都沒能得到好的解決。
終于在 2015 年,12306 系統迎來了與阿里云的合作。這一年春運期間,阿里云將承擔 12306 系統中 75% 的流量(車票查詢業務)。用戶的購票體驗也提升不少。
和阿里云合作后的 12306,盡管各項功能接近完善,可以提供購票、退票、余票查詢、列車時刻表查詢等服務。但此時的 12306 還要面臨著一個巨大的挑戰——黃牛。
隨著火車票實名制的推行以及 12306 網上購票渠道的開通,已經很難在車站見到票販子了。但黃牛也是與時俱進的,一些技術性黃牛竟然依靠自己編寫的爬蟲程序倒賣車票。
相較于普通黃牛,技術黃牛更加難以管控,12306 必須不斷進行完善和數據維護。
2015 年 3 月,12306 在其登錄界面推出了選取圖片驗證碼的方式,有效打擊黃牛。此后還采取了一系列措施讓買票系統更加公平公證,比如將購票、退票和改簽時間由不晚于列車開車前 2 小時調整為 30 分鐘等等。

2017 年,12306 開始支持微信支付,支付方式更加多樣化。2018 年,12306 再次進行了改版升級。
2019 年,候補購票功能上線。

在 12306 軟件登記購票信息并支付票款后,如有退票、余票,12306 系統將自動為其購票,購票速度和成功率都將快于搶票軟件。該功能的出現,真正遏制了利用插件盈利的第三方軟件,直到此時人們才覺得,搶票也不過如此。
我們可以看到,在這十多年的時間里,背負著爭議和批評的 12306,這些年一直圍繞用戶體驗,在服務器和購票系統上不斷優化、改版升級,UI 改進、速度提升、接入各類服務、加入人性化功能,讓旅客體驗實現質的飛躍,用實力挽回了口碑,扛起了一個擁有十幾億人口國家的出行重任。
由此看來,世界數據之最,12306 來之不易,也實至名歸。
值得注意的是,近日鐵路 12306 APP 再次升級,又上新了多個實用功能。
①城市名和車站名分得更清楚
你有沒有因為買錯車站而錯過火車的經歷?官方針對這個痛點進行了升級。在最新版 12306 APP 首頁輸入目的地時,系統會自動生成車站列表了。
比如輸入 " 重慶 ",頁面就會用藍色的 " 城市 " 標簽標明 " 重慶市 ",在紅色的 " 火車站 " 標簽下顯示重慶市內的所有火車站。

今后如果不能確定要買哪個站,輸入城市名再選擇即可,系統將車站名和城市名進行了標注和區分,當一個城市有多個火車站時,用 戶購票再也不會犯迷糊,能清晰地區分東站、西站、南站、北站。
②出行頁面內容更豐富

購買火車票后,12306 APP 首頁將會出現本人行程的信息,包括車次、出發時間、始發站、終到站。點擊詳情后,旅客能看到內容更 加豐富的出行服務信息,比如列車信息、疫情防控信息、天氣情況等。
③積分可兌換午餐
現在不少人都注冊了 12306 的鐵路暢行常旅客會員,平時購票乘車時都可以獲得積分,可直接用于兌換火車票。
近日 12306 APP 升級后,在乘車積分的基礎上增加了 " 訂餐積分 " 功能,支持旅客兌換訂餐積分,兌換后的積分可以在餐飲業務中進行部分餐品的消費。

不過,訂餐積分和乘車積分并不互通。目前訂餐積分獲得的渠道主要有三個:平安銀行萬里通積分兌換、中國移動積分兌換、綁定電子券進行領取。
100 個訂餐積分相當于 1 元現金,在使用時,輸入車次、出發日期、座位號等信息,系統就會提示中途哪些站有供餐服務,用戶選擇心儀的餐廳和菜品下單,用積分支付即可。到了相應站點,乘務員就會自動把 " 免費的午餐 " 送到用戶手中。
從升級服務器,到推出候補車票功能、打擊網絡黃牛、推出各實用功能等等,相信 App 會越做越好。那么你覺得 12306 還有什么需要改進的地方嗎?(編輯:崔崔 )
原文地址:http://www.myzaker.com/article/6357dd058e9f0919d67560eb