第378章【解決方案與報價】

下午。

羅晟依然待在藍星科技集團,本來今天下午他要去蔚藍海岸實驗室主持一個技術會議的,不過在得知國家鐵路集團前來尋求技術支持幫助,他臨時修改了一下自己的工作安排,選擇優先接見劉副總。

主要是年關將近,全國各地的民衆尤其是外出務工的農民工都急着趕回家過年,這個羣體非常不容易,羅晟覺得自己能爲他們做點什麼就做點什麼,別的不說幫助他們更輕鬆的買到一張回家過年團聚的車票也是一件很有意義的事情。

況且還能收穫一位大客戶。

……

此時此刻,公司的一間會客室裡,羅晟與劉副總等七八個國家鐵路集團的人在一塊。

簡單見面寒暄了幾句,劉副總找到重點話題的切入口,說道:“12306票務系統一期工程的開發費用合計三個億,包含硬件,這套系統需要結合鐵道部信息數據庫、還需要結合電話售票、窗口售票等相關數據的結合。12306不是一個簡單的在線交易系統,而是一個全國乃至世界最大的大宗物資貨運系統。”

過了片刻,隨行的一位技術專家也說道:“12306的技術確實非常難解決,利用現有的分佈式數據庫、緩存、負載均衡技術已經不能滿足需求。”

說到這裡,這名技術專家看向了羅晟補充道:“要知道,12306在春運的時候,日均有近300億次訪問量。如此天量級別的火車票查詢是影響12306性能的重要原因之一,大概率佔了90%以上的訪問量。更及棘手的是:峰谷的查詢有天壤之別,幾乎沒有辦法在成本和併發能力之間做一個好的平衡。”

傾聽着的羅晟默默的點點頭,逝者對方把話說完之後,他便問道:“你們和阿里的合作是怎麼解決的?”

那名技術專家坦言:“現在的做法是從幾個關鍵入口流量控制,保障系統可用性,但是會影響用戶體驗,仍然出現網站宕機、打不開的現象,已經遭來一片罵聲。”

說着那名技術專機也是苦笑的搖了搖頭。

劉副總也說道:“阿里免費給12306提供技術支持,但是技術還是不夠硬,我們現在就把希望放在星雲上了。”

羅晟不由得一笑,也是耿直的說道:“劉總,首先我可以肯定的給你一個回覆,星雲系統完全沒問題,同時我可以保證在一週之內就能實現爲12306量身打造一整套從軟件到硬件的完整解決方案,但這個解決方案不會像阿里一樣免費支持。”

劉總啞然,也是一笑,道:“願聞其詳。”

羅晟思量了片刻,迅速組織好語言便說道:“如果星雲支持12306系統以後,把12306網站查詢訪問放到星雲上。一般而言,查詢是多數售票系統訪問量最大的部分,剛剛也聽你們的專家說了,90%左右。在交易相關的過程中,都會多次提交查詢請求,更不要說現在有大量刷票軟件的出現所帶來的額外增加的工作負載了,這一切都讓餘票查詢系統成爲整個系統的壓力集中地。”

“我的解決方案是,星雲介入後,把餘票查詢模塊和12306現有系統做分離,具備獨立部署的能力;在雲端上獨立部署一套餘票查詢系統,這樣12306和雲上都有了一套餘票查詢系統,調度會更爲靈活,目前星雲集羣服務器規模已經達到了50000臺以上。”

在場的幾位鐵路集團的技術專家一聽也是暗暗咂嘴,難怪阿里的“飛天”系統這麼不禁打,前者勉勉強強破千,而後者已經達到了5萬規模之巨,難怪羅晟會這麼有信心。

接下來,羅晟主要與鐵路集團的幾名技術專家討論。

“今天上午我在得知消息順帶簡單研究了一下‘12306’的服務端架構。”羅晟面向衆人有條不紊的說道:“廣大訪問者都在噴,但是我知道12306服務一上線試運行,就承受着這個世界上任何秒殺系統都無法超越的QPS,上百萬的併發再正常不過了。”

在場的幾名鐵路集團的技術骨幹人員內心稀里嘩啦的感動,理解萬歲啊。

不懂技術的領導最難溝通,覺得沒有盡力。

羅晟的話還是很有分量的。

過了片刻,羅晟補充道:“高併發的系統架構要採用分佈式集羣部署,服務上層有着層層負載均衡,並提供各種容災手段,所謂的容災手段就是雙火機房、節點容錯、服務器災備等。保證系統的高可用,流量也會根據不同的負載能力和配置策略均衡到不同的服務器上。”

“即便如此,集羣中的單機所能承受的QPS也是非常高的,那麼如何將單機性能優化到極致呢?要解決這個問題要先弄明白一件事:通常訂票系統要處理生成訂單、減扣庫存、用戶支付這三個基本的階段,系統要做的事情就是保證火車票訂到不超賣、不少賣、每張售賣的車票都必須支付纔有效,還要保證系統承受極高的併發。”

幾名鐵路集團的技術專家連連點頭表示認同,技術痛點就在這裡。

羅晟繼續說道:“下單減庫存。當用戶併發請求到達服務端時,首先創建訂單,然後扣除庫存,等待用戶支付。這種順序是我們一般人首先會想到的解決方案,這種情況下也能保證訂單不會超賣,但也會產生一些問題,第一就是在極限併發的情況下,任何一個內存操作的細節都至關影響性能,尤其是像創建訂單這種邏輯,基本都需要存儲到磁盤數據庫的,對數據庫的壓力是可想而知的,12306應該是用的甲骨文數據庫,別花這個冤枉錢了,放到我的星雲上。”

“第二是如果用戶存在惡意下單的情況,只下單不支付這樣庫存就會變少,會少賣很多訂單,雖然服務端可以限制IP和用戶的購買訂單數量,但這也真心不算是一個好辦法。”

“然後就是支付減庫存了。如果等待用戶支付了訂單再減庫存,第一感覺就是不會少賣。但這是併發架構的大忌,因爲在極限併發的情況下,用戶可能會創建很多訂單,當庫存減爲零的時候很多用戶會發現搶到的訂單支付不了,這也就是所謂的‘超賣’,也不能避免併發操作數據庫磁盤IO。”

“最後是預扣庫存。從上面兩種方案的考慮,可以得出結論:只要創建訂單,就要頻繁操作數據庫IO。那麼有沒有一種不需要直接操作數據庫IO的解決方案呢?答案是有,就是預扣庫存,先扣除了庫存,保證不超賣,然後異步生成用戶訂單,這樣響應給用戶的速度會快很多。”

“那麼怎麼保證不少賣呢?用戶拿到了訂單,不支付怎麼辦?訂單都應該有效期,比如說用戶五分鐘內不支付,訂單就失效,就會加入新的庫存。訂單的生成是異步的,應該放到即時消費隊列中處理……”

劉副總聽的雲裡霧裡的,但是他發現羅晟和他帶來的幾個技術專家交流的愈發火熱,似乎也得出了一個信息。

找對人了!

這時,羅晟打開了房間裡的牆面上的大屏幕,他也拿來了一臺筆記本工作電腦打開,示意衆人看向主投屏,自己一邊操作電腦一邊說道:

“Go語言原生爲併發設計,我就採用Go語言給各位演示一下單機搶票的具體流程以及我優化後的解決方案。”

“Go包中的init函數先於main函數執行,也在這個階段主要做一些準備性質的工作。系統需要做的準備工作有:初始化本地庫存、初始化遠程redis存儲統一庫存的hash鍵值、初始化redis鏈接池。”

“另外還需要初始化一個大小爲1的int類型chan,目的是實現分佈式鎖的功能,也可以直接使用讀寫鎖或者使用redis等其他方式避免資源競爭,但是使用Channel更加高效,這就是Go語言的哲學,不需要通過共享內存來通信,而是通過通信來共享內存。Redis庫使用的是redigo,下面是代碼:

//localSpike包結構體定義

package localSpike

type LocalSpike struct {

LocalInStock int64

LocalSalesVolume int64

}

//remoteSpike對hash結構的定義和redis連接池

package remoteSpike

//遠程訂單存儲健值

type RemoteSpikeKeys struct {

……

……

不知不覺,時間已經過去了一個半小時,反正劉副總是聽不懂,那些代碼看的暈頭轉向。

技術問題終於討論的差不多了。

鐵路集團的技術專家看向了劉副總並且帶着肯定的目光輕點了一下頭,劉副總立馬就明白了,果斷的轉投看向羅晟問道:“羅總,如果提供這麼一整套完善解決方案,報價是多少?”

羅晟直言:“每年支付10個億。”

劉副總聽到這個數字差點沒有一口老血噴出來,12306票務系統一期工程的預算也才3個億,這樣的報價簡直貴到難以接受。

……

第887章【驚喜不驚喜?意外不意外?】第735章【趁我不注意你們跑的挺快哈?】第076章【蔚藍海岸(Azure Coast)】第970章【合理的耍流氓】第371章【蔚藍海岸的第二款產品】第742章【叔?記住啦,要叫哥!】第678章【被折騰到苦不堪言的北美科技巨頭們】第218章【電競選手們興奮了】第400章【千金買馬骨,內容自制計劃】第872章【投資者:穩住,不慌,羅晟肯定不是胡來的】第132章【上市前的準備(3/4)】第667章【私人實驗室啓動】第415章【光刻設備產業技術創新戰略聯盟專家協會】第379章【星雲支持12306再上線,穩如老狗!】第155章【攪局者孫政義[爲“飛言人”萬賞加更]】第470章【“鯤鵬”展翅在即】第536章【一條微博動態左右市場風向】第503章【浪潮退去才能看清誰在裸(luo)泳】第550章【蔚藍電動汽車發佈會】第776章【取貨】第284章【碰面索尼掌門人】第363章【市值首破三千億美元!】第963章【強勢】第668章【新型生物納米晶體管】第249章【安於現狀的巨頭們】第068章【媒體的節奏】第361章【榮耀?】第668章【新型生物納米晶體管】第807章【這麼陰損,說好的厚道人呢?】第068章【媒體的節奏】第937章【衝突升溫】第302章【晟峰投資管理基金】第738章【“二張”互撕】第681章【悲催的Ansys公司全然不知已經被人賣了】第678章【被折騰到苦不堪言的北美科技巨頭們】第271章【真有錢的在哭窮,真沒錢的在裝闊[2600月票加更]】第187章【蔚藍海岸首款產品發佈會[4.7千字大章求票]】第116章【收穫的季節到了】第914章【完全停不下來了(二合一)】第172章【戰略合作】第562章【WTI原油爆雷收割,吃完空頭吃多頭】第803章【瘋狂增產,上不言頂】第085章【競相模仿】第058章【一步順利步步順】第988章【想財務自由成千萬富婆就聽羅哥的】第063章【紐約布勞德85號大樓】第574章【沒問題,這三個項目我接了】第320章【業界狂熱追捧(乾貨)】第635章【全方位領先,這就是Azure-5】第583章【恐怕只有魔法才能打敗魔法了吧】第255章【補足內容短板?那就買買買!】第856章【世紀併購案終於落幕】第1027章【進度加速的天梯工程】第973章【這個登月計劃還非登不可了】第229章【一夜爆紅的神秘高手(二合一)】第095章【引領行業潮流】第722章【人造電子皮膚】第188章【封神,出道即巔峰】第098章【新記錄?】第683章【一個假消息就搞垮一家技術巨頭】第335章【暴利】第427章【制裁?難!】第521章【旗艦產品發佈會,上來就王炸!】第995章【螃蟹的逆襲】第667章【私人實驗室啓動】第487章【第一輪交鋒】第030章【有朝一日方可長期套牢】第468章【高通急眼了】第343章【你好,思諾登先生】第627章【一場晚宴引發所引發的歐元暴跌】第880章【“陰間武器”】第304章【該死,上帝太不公平了!】第522章【讓Azure手機全面智能化】第569章【證監會官網被擠爆】第162章【向“牙膏廠”學習[感謝“手撕鬼仔”的萬賞]】第439章【轟動業界】第1002章【太空船塢與路走寬的劉賭怪】第538章【“梯子”的前期準備該提一提日程了】第013章【收購邀約】第637章【售價應該是多少呢】第974章【可以提意見,但贊成有效,反對無效】第435章【南嶺P4實驗室的當家人】第1020章【戰鬥天使的銷售熱潮】第827章【年度最弱智新聞】第191章【谷歌,來玩啊~】第507章【萬衆矚目的科技創投峰會】第733章【大白(●—●)】第230章【升級(1900月票加更)】第267章【最隨和的語氣說最霸氣的話[2500月票加更]】第138章【萬衆期待的財務報表(5/5)】第709章【誰掌握虛擬世界的通道入口就掌握了未來】第147章【精明到骨子裡】第175章【來啊,互相傷害啊[月票加更]】第811章【血崩】第622章【一樁私募竟引發全球資本市場流動性異常】第831章【《三國》與《諸子百家》】第243章【驚喜激動的野比石】第050章【做一回攪局者】第045章【趙總慌的一批】第992章【首批訂單】
第887章【驚喜不驚喜?意外不意外?】第735章【趁我不注意你們跑的挺快哈?】第076章【蔚藍海岸(Azure Coast)】第970章【合理的耍流氓】第371章【蔚藍海岸的第二款產品】第742章【叔?記住啦,要叫哥!】第678章【被折騰到苦不堪言的北美科技巨頭們】第218章【電競選手們興奮了】第400章【千金買馬骨,內容自制計劃】第872章【投資者:穩住,不慌,羅晟肯定不是胡來的】第132章【上市前的準備(3/4)】第667章【私人實驗室啓動】第415章【光刻設備產業技術創新戰略聯盟專家協會】第379章【星雲支持12306再上線,穩如老狗!】第155章【攪局者孫政義[爲“飛言人”萬賞加更]】第470章【“鯤鵬”展翅在即】第536章【一條微博動態左右市場風向】第503章【浪潮退去才能看清誰在裸(luo)泳】第550章【蔚藍電動汽車發佈會】第776章【取貨】第284章【碰面索尼掌門人】第363章【市值首破三千億美元!】第963章【強勢】第668章【新型生物納米晶體管】第249章【安於現狀的巨頭們】第068章【媒體的節奏】第361章【榮耀?】第668章【新型生物納米晶體管】第807章【這麼陰損,說好的厚道人呢?】第068章【媒體的節奏】第937章【衝突升溫】第302章【晟峰投資管理基金】第738章【“二張”互撕】第681章【悲催的Ansys公司全然不知已經被人賣了】第678章【被折騰到苦不堪言的北美科技巨頭們】第271章【真有錢的在哭窮,真沒錢的在裝闊[2600月票加更]】第187章【蔚藍海岸首款產品發佈會[4.7千字大章求票]】第116章【收穫的季節到了】第914章【完全停不下來了(二合一)】第172章【戰略合作】第562章【WTI原油爆雷收割,吃完空頭吃多頭】第803章【瘋狂增產,上不言頂】第085章【競相模仿】第058章【一步順利步步順】第988章【想財務自由成千萬富婆就聽羅哥的】第063章【紐約布勞德85號大樓】第574章【沒問題,這三個項目我接了】第320章【業界狂熱追捧(乾貨)】第635章【全方位領先,這就是Azure-5】第583章【恐怕只有魔法才能打敗魔法了吧】第255章【補足內容短板?那就買買買!】第856章【世紀併購案終於落幕】第1027章【進度加速的天梯工程】第973章【這個登月計劃還非登不可了】第229章【一夜爆紅的神秘高手(二合一)】第095章【引領行業潮流】第722章【人造電子皮膚】第188章【封神,出道即巔峰】第098章【新記錄?】第683章【一個假消息就搞垮一家技術巨頭】第335章【暴利】第427章【制裁?難!】第521章【旗艦產品發佈會,上來就王炸!】第995章【螃蟹的逆襲】第667章【私人實驗室啓動】第487章【第一輪交鋒】第030章【有朝一日方可長期套牢】第468章【高通急眼了】第343章【你好,思諾登先生】第627章【一場晚宴引發所引發的歐元暴跌】第880章【“陰間武器”】第304章【該死,上帝太不公平了!】第522章【讓Azure手機全面智能化】第569章【證監會官網被擠爆】第162章【向“牙膏廠”學習[感謝“手撕鬼仔”的萬賞]】第439章【轟動業界】第1002章【太空船塢與路走寬的劉賭怪】第538章【“梯子”的前期準備該提一提日程了】第013章【收購邀約】第637章【售價應該是多少呢】第974章【可以提意見,但贊成有效,反對無效】第435章【南嶺P4實驗室的當家人】第1020章【戰鬥天使的銷售熱潮】第827章【年度最弱智新聞】第191章【谷歌,來玩啊~】第507章【萬衆矚目的科技創投峰會】第733章【大白(●—●)】第230章【升級(1900月票加更)】第267章【最隨和的語氣說最霸氣的話[2500月票加更]】第138章【萬衆期待的財務報表(5/5)】第709章【誰掌握虛擬世界的通道入口就掌握了未來】第147章【精明到骨子裡】第175章【來啊,互相傷害啊[月票加更]】第811章【血崩】第622章【一樁私募竟引發全球資本市場流動性異常】第831章【《三國》與《諸子百家》】第243章【驚喜激動的野比石】第050章【做一回攪局者】第045章【趙總慌的一批】第992章【首批訂單】