自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

搶不到回家的票,還真不是12306技術(shù)不行

新聞 前端
 作為世界上公認規(guī)模最大、特定時段最繁忙的實時交易系統(tǒng)之一,能在絕大部分時間保證平穩(wěn)運行,12306 已經(jīng)相當(dāng)不容易了。

  作為世界上公認規(guī)模最大、特定時段最繁忙的實時交易系統(tǒng)之一,能在絕大部分時間保證平穩(wěn)運行,12306 已經(jīng)相當(dāng)不容易了。

  臨近春節(jié),12306 崩潰一次,就有人心碎一次。

  12 月 23 日上午,有不少網(wǎng)友爆料稱 12306 出現(xiàn)了車次加載失敗、購買不了票或卡在候補訂單支付界面的情況,疑似因搶票人數(shù)過多,導(dǎo)致服務(wù)器崩潰。12306 客服后來回應(yīng),原因可能是操作旅客過多,系統(tǒng)繁忙造成的,可嘗試重新卸載安裝客戶端或切換網(wǎng)絡(luò)。至于春運期間是否將加強技術(shù)保障,客服稱需要反饋給相關(guān)技術(shù)部門才能得知。

  似乎每年在春運的節(jié)骨眼上,12306 總要掉幾回鏈子。已經(jīng)有人學(xué)會了苦中作樂,有網(wǎng)友想到興許能報個旅行社回家:

??

  有人出主意不然就直接買輛車吧,路上還能拉個順風(fēng)車賺錢:

??

  很多人雖然總喊著過年太煩太累,但家畢竟還是要回。按照 2020 年春運火車票網(wǎng)絡(luò)訂票提前 30 天發(fā)售的規(guī)定,12 月 23 日已經(jīng)可以購買 2020 年 1 月 21 日的車票,正是搶票高峰期。在離春節(jié)假期只剩整一個月的當(dāng)口,絕大多數(shù)歸心似箭的人還是被這波宕機搞得非常著急。

  12306 每次宕機都伴隨著一片罵聲,這次也不例外。大家不明白為什么這么久過去了,12306 還是如此讓人糟心。這個問題并不簡單,它涉及到我國復(fù)雜的國情和背后的種種技術(shù),不是一句話就能說清,我們亦無法輕易給 12306 定性。

  但有一點可以肯定,作為世界上公認規(guī)模最大、特定時段最繁忙的實時交易系統(tǒng)之一,能在絕大部分時間保證平穩(wěn)運行,12306 已經(jīng)相當(dāng)不容易了。

  為什么會搶不到票?

  在解釋這次 12306 為什么會崩潰前,我們有必要先了解一些它的基本規(guī)則。

  一直以來,中國鐵路都存在一種被叫做“區(qū)間限售”的售票模式。它某種程度是對硬紙板票售票模式的延續(xù),在硬紙板票時代,每輛車在每個車站、每個區(qū)間發(fā)售的車票都需要提前印刷好,因此售票部門會事先給每趟車不同區(qū)間的車票數(shù)量制定指標。

  在互聯(lián)網(wǎng)時代,這種指標分配仍然存在,于是漸漸有了區(qū)間限售的說法。這種售票模式遵循的原則,12306 官方的對外解釋是“棄短護長”。

  舉個簡單的例子(僅作舉例不代表真實情況),針對從北京始發(fā)經(jīng)由濟南、南京,最終到達上海的 G1 次高速列車,在一開始售票的時侯,大概率不會發(fā)售從濟南到南京段的車票,或者會在開始時限制這一區(qū)間銷售的車票數(shù)量(不放出全部車票),為的是保證北京到南京、上海的長途旅客的出行需求。

  因為一旦你先買了濟南到南京的車票,意味著你不僅占用了從北京到南京的一個席位,還占用了一個從北京到上海的。不論是就方便長途旅客(沒人愿意從北京到上海三段區(qū)間換三次座位),還是減輕鐵路系統(tǒng)的工作負擔(dān),區(qū)間限售都是目前最合適的解決方案。

  這也在一定程度上解釋了火車票為什么難搶,一邊是巨大的人口基數(shù),一邊是區(qū)間限售的措施,都讓車票在剛一放票就被秒光。雖然在臨近開車的一段時間內(nèi),為了調(diào)控需求、提高列車利用率,會解除限售放出一些沒有賣出的余票,但在春運這樣交通資源極其緊張的時候,人們一天買不著票就要多操心一天,傷時傷財傷感情。

  越是需要拼手速,第三方搶票軟件就越有利可圖。越來越多人選擇放棄使用 12306 官網(wǎng)及 App 手動訂票,轉(zhuǎn)而把搶票任務(wù)托付給攜程、智行等等的第三方軟件和機器。

  人工刷新永遠快不過機器,第三方搶票軟件給 12306 帶來的是巨大且更頻繁的數(shù)據(jù)量。一名曾在第三方軟件的火車票部門工作過的知乎匿名用戶如此回憶,“就我們每天往她(12306)塞的流量,基本上小電商網(wǎng)站都要崩潰,而且我們更早地提出過站補票,買短程票延長,提供機票加火車加汽車一系列的解決方案,查詢量非常大?!?/p>

  12306 為什么會崩潰?

  第三方搶票軟件給 12306 帶來的壓力,基本都在余票查詢環(huán)節(jié),這也是 12306 的崩潰之處。

  查詢環(huán)節(jié)就涉及到 12306 庫存機制的復(fù)雜性。事實上早在 2014 年,一位 ID 名為“代碼狗”的前淘寶工程師就在著名論壇“西西河”上發(fā)文表達過他對 12306 的看法。他曾認為 12306 的系統(tǒng)很容易搭建,于是發(fā)起了一個名為“替 12306 設(shè)計系統(tǒng)”的開源項目,然而工作中的實踐徹底改變了他對 12306 的認識。

  12306 系統(tǒng)的復(fù)雜之處就在于,它的 SKU(即 Stock keeping Unit,庫存保有單位)并不像一般電商那樣,可以通過區(qū)別貨品有和沒有來簡單計算,而是需要結(jié)合每條線路的不同區(qū)間來做復(fù)雜運算,并且,12306 的 SKU 還是時刻動態(tài)變化著的。

  這里引用“代碼狗”舉的一個從北京西到深圳北的 G71 次高速列車的例子(僅討論理論世界的模型)。這趟列車共有 17 個站,3 種座位,表面上看這是 3 種商品(商務(wù)座、一等座和二等座),但實際上,G71 的商品種類多達 408 種(注意:這里指的是商品種類,而非具體的商品數(shù)量)。

  計算方法是,如果賣北京西始發(fā)的車票,共有 16 種賣法,因為后面有 16 個站,分別是北京西到保定、石家莊、鄭州、武漢、長沙、廣州、虎門……每個區(qū)間都可以看作是一種獨立的商品。同理,如果是從石家莊站始發(fā),共有 15 種賣法,以此類推。所以單按車站區(qū)間來計算,G71 的商品種類為:16+15+14+…+2+1=136 種。再考慮進 3 種座位類型,商品種類就成了:136*3=408 種。

  我們再來看 G71 是怎么減庫存的。假如旅客A買了一張區(qū)間為北京西到保定東(即順序數(shù)北京西的下一站)的車票,那么 G71 的 SKU 就要減去 16 個,包括北京西到余下 16 個車站每個區(qū)間都要減1(注意:這里指的就是商品數(shù)量了,可以暫時不需考慮座位類型)。

  同樣,假如旅客B買了一張區(qū)間為北京西到深圳北(即終點站)的車票,G71 的 SKU 就要減去 136 個,包括北京西到余下 16 個車站每個區(qū)間減1,保定東到余下 15 個車站每個區(qū)間減1,石家莊到余下 14 個車站每個區(qū)間減1……所以減去的庫存為:16+15+14+…+2+1=136 個。

  G71 的商品種類本來已經(jīng)夠多了,庫存減起來更是繁瑣??梢?,12306 的動態(tài)庫存比我們平時買東西的任何網(wǎng)站的庫存機制要復(fù)雜太多太多,等于旅客每買一張車票,12306 就需要更新相應(yīng)線路的所有車票數(shù)據(jù)。

  有業(yè)內(nèi)人士稱,余票查詢系統(tǒng)訪問量巨大,占 12306 整個網(wǎng)站流量的 90% 以上,業(yè)務(wù)高峰期并發(fā)請求密集,性能要求是整個業(yè)務(wù)系統(tǒng)中最為重要的一環(huán)。

  當(dāng)?shù)谌綋屍避浖由先斯げ樵冇咳氲臄?shù)據(jù)量超出 12306 的計算能力時,崩潰就發(fā)生了。

  不是 12306 不努力

  對于 12306 來說,應(yīng)對的方法無非兩種,一種是打擊第三方搶票軟件,一種是升級服務(wù)器。實際上,這些 12306 也早就想到了。為了打擊搶票軟件,12306 嘗試過的辦法就包括了最早的字母數(shù)字組合驗證碼,后來槽點頗多的圖形驗證碼,規(guī)定半年內(nèi)不得刪除常用聯(lián)系人,每個注冊的賬戶必須經(jīng)過實名驗證,以及推出“官方的搶票功能”候補購票等。

??

當(dāng)年 12306 的圖形驗證碼被玩壞了

  經(jīng)過如何、道理怎樣不再贅述,但結(jié)果是,種種復(fù)雜的限制最后總能被第三方軟件想方設(shè)法破解,這不現(xiàn)在一些搶票軟件已經(jīng)能幫你實現(xiàn)“官方候補”(別問我怎么知道的),而 12306 的候補功能今年 5 月才剛正式上線。

  服務(wù)器方面,12306 針對余票查詢系統(tǒng)有過的兩次較大升級。

  一次是在上線后的一年內(nèi)選擇與美國科技公司 Pivotal(中譯“畢威拓”)合作,引入后者的 GemFire 分布式內(nèi)存計算平臺技術(shù)率先對 12306 的余票查詢系統(tǒng)進行改造。“分布式數(shù)據(jù)處理”和“集中式數(shù)據(jù)處理”概念相對,在解決 12306 的票務(wù)問題上分布式計算更有優(yōu)勢(不懂兩者區(qū)別的朋友請自行搜索)。這次技術(shù)改造效果明顯,讓 12306 暫時舒了一口氣。

??

12306 引入 Pivotal GemFire 改造后的成效

  另一次則是和阿里云的合作。據(jù)一名自稱是阿里云程序員、參與了 2015 年 12306 春運項目工作的知乎匿名用戶稱,在 2014 年初雙方團隊就已開始討論如何將余票查詢系統(tǒng)放到云上,并在 2015 年春運期間將 12306 75% 的余票查詢業(yè)務(wù)放到云上。

  云計算相較于 GemFire 這樣基于內(nèi)存的分布式集群系統(tǒng)功能更進一步,在提升余票查詢能力方面,云計算可以快速部署應(yīng)用提供服務(wù),通過分鐘級的擴容操作,實現(xiàn)十倍、百倍的服務(wù)能力擴展。

  了解了這些,我們恐怕真的不能指責(zé) 12306 不努力。尤其是考慮到每年只增不減、屢創(chuàng)新高的春運鐵路出行人次,12306 幾乎年年都要面臨大考。

  把近五年的鐵路春運數(shù)據(jù)放在一起比就很明顯了,2015-2019 年春運鐵路總計發(fā)送旅客人次分別是:2.95 億、3.26 億、3.57 億、3.8 億和 4.1 億。據(jù) 12 月 25 日國家發(fā)展改革委、交通運輸部、公安部、國鐵集團等八部門聯(lián)合召開的電視電話會議預(yù)測,2020 年全國春運鐵路發(fā)送旅客將高達 4.4 億人次。

  你可能會問,既然如此,12306 為什么不多買一點服務(wù)器呢?有人舉了這樣一個例子:

  “十一黃金周的時候,北京主城區(qū)到八達嶺長城的路堵得嚴嚴實實,但不能因為黃金周出行高峰,就把這段路修成長安街那樣 10 車道的公路。花大價錢修了一段路,黃金周是可以飆到 80 公里/小時了,可平時呢,拿來給兩邊的居民曬谷子?逼著 12306 買一大堆服務(wù)器對付春運,和逼北京修一條 10 車道的高速公路去八達嶺長城一個道理?!?/p>

  再者,即便是買了更多服務(wù)器,當(dāng)前中國的鐵路運力擺在那,依然會有人搶不到票。

 

責(zé)任編輯:張燕妮 來源: PingWest品玩
相關(guān)推薦

2021-07-26 07:47:37

前端自動搶票

2018-10-23 11:16:59

12306思路余票

2018-12-27 09:26:43

AIoTAIIoT

2013-01-17 10:49:42

2023-03-16 07:47:55

獨顯核顯筆記本

2014-12-22 11:07:18

12306

2013-01-22 17:10:42

瀏覽器技術(shù)解析

2018-12-29 16:24:58

Python12306火車票

2013-09-12 10:50:13

獵豹瀏覽器12306搶票軟件

2013-01-16 16:28:20

2016-11-28 09:58:37

戴爾開放網(wǎng)絡(luò)

2014-01-03 09:15:39

12306搶票360

2023-09-26 12:08:20

開源python

2022-05-07 06:04:58

光模塊光通信通信

2018-01-26 10:31:11

搶票軟件公平

2013-09-12 12:17:23

搶票攻略搶票

2018-02-07 17:12:00

2013-09-12 11:17:02

2013-09-12 11:14:52

假冒1230612306

2013-12-09 14:21:45

12306搶票瀏覽器
點贊
收藏

51CTO技術(shù)棧公眾號