春節快到了,春運也到了,考驗12306的時候也到了,
看了網上的各種分析,說是12306這種業務,技術上很難應付,如何如何,我很不以為然,
12306的業務,是有其特殊性,但并非技術上不好處理,
首先,12306 網站將買火車票的模式,分成了平常模式、春運模式,這也得到官方及民眾的認可,屬于業務清晰、不含糊,
這在很多乙方軟體公司的角度來看,屬于低難度模式的業務,
乙方軟體公司怕就怕甲方的業務,甲方自己說個半年都說不出所以然來,
其次,平常模式下,12306 的賣票,并未有什么難點,
難點在于,春運模式下,12306網站難以應付短時間的大訪問量、大業務量,但這是可以解決的,
短時間的大訪問量、大業務量,問題根源在于:
12306 結合日歷時間,推出了“按小時為基準的定時、批量、放票的策略,先到者得”的系統邏輯,
這就導致,所有購票人,都要在搶在某個時間點,比如 10:00:00 , 十幾秒內,或者最好在零點幾秒內,完成購票操作,否則,落后其他人的手速、網速,就買不到票了,
這種“按小時為基準的定時、批量、放票的策略,先到者得”,不是業務,而只是一個軟體設計思路,且是不好的設計思路,
讓所有購票人,比拼手速、網速,這有點歧視功能障礙者的意味吧?
其實,針對這種買票人多、賣的票數少的業務模式,更好的辦法是:
安排購票時間視窗(比如 10:00-11:00), 購票人通過某種方式提交購票意向(手機APP、電腦訪問12306網站、火車站購票視窗、各火車票代銷網點視窗);
賣票系統定期(比如 11:01 - 11:30)進行售票匹配運算,將哪些人買哪些票的資訊,以“電腦隨機抽簽模式”,運算出來;
然后以短信/APP資訊通知到購票人,讓其在30分鐘內(11:30-12:00)完成購票支付,
未完成支付的,視為放棄,所分配的火車票,進入下一輪購票周期,
以上 10:00 - 12:00 ,共兩個小時,為一輪購票周期,留給電腦 29 分鐘運算時間,應該夠了,不夠也可以調整的,
12:00 - 14:00,進入下一輪購票周期,如此類推,
以上模式下,購票時間視窗(比如 10:00-11:00)里,購票人無需擠在某個時間點的十幾秒內,大家一起操作,因為新的軟體系統設計思路下,能不能購票,不在于操作的先后,只要在購票時間視窗里完成操作,剩下的就等運氣了(電腦隨機抽簽),
對于購票者而言,公平性還是一樣的,
“電腦隨機抽簽模式”的好處在于:
購票人可以不用急急忙忙地購票,可以心平氣和地拿著手機、電腦滑鼠,進行購買操作;
12306系統也不用在十幾秒內里接受、處理的大量購票操作;
如有關方面看到這篇文章,要求我參與12306網站的建設,我愿意對12306網站的改進出一份力,
雖然,我春節不經常回老家,即使回老家,一般也是自駕,較少買火車票,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/26011.html
標籤:架構設計
下一篇:架構師主要做些什么,你知道嗎?
