企業(yè)網(wǎng)D1Net 1月3日訊
每到歲末,春運(yùn)時(shí)刻,圍繞12306的話題總是層出不窮。上月28日,春運(yùn)首日火車票開售,12306網(wǎng)站承受不住訪問(wèn)量而癱瘓,還一度出現(xiàn)了“身份證等個(gè)人信息串號(hào)”的情況,真是沒有辜負(fù)廣大人民群眾的“期待”。2014年剛來(lái)臨,12306網(wǎng)站又再次成為了“焦點(diǎn)”。為了防止第三方軟件刷票,12306升級(jí)了驗(yàn)證碼,將原本靜態(tài)的驗(yàn)證碼變成了彩色動(dòng)態(tài)驗(yàn)證碼。在輸入時(shí)新版的驗(yàn)證碼字符會(huì)不停地抖動(dòng),讓人難以辨別,網(wǎng)友戲稱其為畢加索的抽象畫,是12306網(wǎng)站的新年新玩法。
看熱鬧歸看熱鬧,12306確實(shí)也有在努力進(jìn)行“技術(shù)改造”。在國(guó)內(nèi)某IT網(wǎng)站發(fā)布的“12306的技術(shù)革命"一文中,指出12306從2012年3月開始改造,把原先采用的Unix小型機(jī)架構(gòu),通過(guò)GemFire的分布式內(nèi)存計(jì)算平臺(tái)改造成Linux/X86服務(wù)器集群架構(gòu),從而提升了查詢余票的速度。文章指出技術(shù)改造之后,只采用10幾臺(tái)X86服務(wù)器實(shí)現(xiàn)了以前數(shù)十臺(tái)小型機(jī)的余票計(jì)算和查詢能力,單次查詢的最長(zhǎng)時(shí)間從之前的15秒左右下降到0.2秒以下,縮短了75倍以上。
細(xì)心的網(wǎng)友會(huì)發(fā)現(xiàn),上述改造主要涉及火車票的余票查詢。12306在高峰期間每日要承擔(dān)上億次的余票查詢,這對(duì)任何一個(gè)網(wǎng)站都是極大的挑戰(zhàn)。鑒于12306沒有圖片、視頻等影響帶寬的內(nèi)容,主要矛盾是數(shù)據(jù)庫(kù)的高并發(fā)量,采用內(nèi)存數(shù)據(jù)庫(kù)是正確的解決思路。我們能看到,這兩年關(guān)于12306火車余票數(shù)量不準(zhǔn)的抱怨確實(shí)減少了。
不過(guò),對(duì)投入N個(gè)億建設(shè)的12306網(wǎng)站,大家所抱有的期待顯然不止這些,特別是在國(guó)內(nèi)B2C電子商務(wù)網(wǎng)站的對(duì)比之下。在2013年淘寶“雙11”購(gòu)物狂歡中,支付寶公布的日下單數(shù)為1.88億筆,最高每分鐘訂單數(shù)為79萬(wàn)筆。今年12306的數(shù)據(jù)尚不得而知,去年公開的數(shù)字為1小時(shí)最高售30萬(wàn)張票,交易數(shù)量級(jí)明顯比不上淘寶,但穩(wěn)定性卻遠(yuǎn)不及。
當(dāng)然,火車票網(wǎng)站有其獨(dú)特的技術(shù)難點(diǎn),并不能完全和淘寶類比。比如在庫(kù)存方面,像淘寶這樣的B2C平臺(tái),庫(kù)存是分散在各個(gè)商家的,不需要頻繁地校驗(yàn)庫(kù)存,而對(duì)于12306網(wǎng)站,每一張火車票都是獨(dú)一無(wú)二的商品,不可同時(shí)被訂購(gòu)。這就是所謂的“數(shù)據(jù)一致性”,淘寶也存在這樣的問(wèn)題,比如12年“雙11”就曾發(fā)生優(yōu)衣庫(kù)衣服超賣的情況,但是淘寶網(wǎng)站的壓力不會(huì)像12306那么集中頻繁。
另外,12306網(wǎng)站并不是一個(gè)孤立的系統(tǒng),背后還有個(gè)與全國(guó)火車票代理點(diǎn)共用的票務(wù)系統(tǒng)。鐵路票務(wù)系統(tǒng)復(fù)雜,代理點(diǎn)遍布全國(guó),舊有的老系統(tǒng)升級(jí)非常困難,甚至可能涉及到復(fù)雜的政治體制問(wèn)題,這也使得12306的響應(yīng)速度難以在短期內(nèi)提升。
隨著除夕的臨近,12306又陸續(xù)迎來(lái)新一波的搶票高峰。作為全球最繁忙的電子商務(wù)平臺(tái),12306網(wǎng)站承受著數(shù)億次的頁(yè)面瀏覽、查詢,以及百萬(wàn)人同時(shí)下單的壓力,更重要的是,它承載著全國(guó)人民回家過(guò)年的期望。淘寶下不了單,不過(guò)是少淘一件便宜貨,而買不了火車票,將直接影響到老百姓能否回家過(guò)年。在可以預(yù)見的未來(lái),12306的技術(shù)改造之路依然任重而道遠(yuǎn)。