您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關大數據中12306是采用哪種方案解決尖峰高流量并發,,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
最近幾天12306又崩潰了的消息遍布網絡,有些人就在網上不斷的噴12306多垃圾,看到這里我只想說和我不了解前一樣,自從被我哥教育一頓后才認識到它是多么的牛逼!
那么12306是采用那種方案 解決尖峰高流量并發問題呢?
12306網站選擇Pivotal GemFire分布式內存計算平臺改造方案,根據系統運行數據記錄,在只采用10幾臺X86服務器實現了以前數十臺小型機的余票計算和查詢能力,單次查詢的最長時間從之前的15秒左右下降到0.2秒以下,縮短了75倍以上。
12306是世界規模最大的實時交易系統之一,媲美Amazon.com,節假日尤其是春節的訪問高峰,網站壓力巨大。
GemFire是Pivotal企業級大數據PaaS平臺的一部分。Pivotal公司的企業級大數據PaaS平臺主要有三個層次:云基礎架構層 Cloud Fabric、大數據基礎架構層Data Fabric、應用開發基礎架構層Application Fabric。GemFire屬于大數據基礎架構層,此外,Greenplum數據庫也屬于這一層;云基礎架構層的技術是Cloud Foundry;應用開發基礎架構層的技術是Spring Framework和RabbitMQ等。
12306之前采用Unix小型機架構,采用GemFire技術改造成Linux/X86服務器集群架構,就意味著一下跨越三代。從小型機到大內存X86服務器集群,不僅讓性能提升了一個數量級,而且成本也要低得多。
2012年3月開始,鐵路總公司(原鐵道部)開始調研、改造12306。2012年6月選擇了Pivotal GemFire分布式內存計算平臺改造12306,一期先改造12306的主要瓶頸——余票查詢系統。9月份完成代碼改造,系統上線。2012年國慶,又是網上訂票高峰期間,大家可以顯著發現,可以登錄12306,雖然還是很難訂票,但是查詢余票很快。2012年10月份,二期用 GemFire改造訂單查詢系統(客戶查詢自己的訂單記錄)。2013年春節,又是網上訂票高峰期間,大家可以顯著發現,可以登錄12306,雖然還是很難訂票,但是查詢余票很快,而且查詢自己的訂票和下訂單也很快。
“通過技術改造解決了尖峰高流量并發問題,讓12306系統不再跟初期那樣動不動崩潰。Pivotal GemFire分布式集群內存數據技術對整個技術改造發揮了關鍵的作用。
據統計, 在2012年初的春運高峰期間,每天有2000萬人訪問12306網站,日點擊量最高達到14億。大量同時涌入的網絡訪問造成12306幾近癱瘓。中國鐵道科學院電子計算技術研究所作為12306互聯網購票系統的承建單位,急需尋求辦法解決問題。
根據系統運行數據記錄,技術改造之后,在只采用10幾臺X86服務器實現了以前數十臺小型機的余票計算和查詢能力,單次查詢的最長時間從之前的15秒左右下降到0.2秒以下,縮短了75倍以上。2012年春運的極端高流量并發情況下,系統幾近癱瘓。而在改造之后,支持每秒上萬次的并發查詢,高峰期間達到2.6萬個查詢/秒吞吐量,整個系統效率顯著提高。如上圖所示。
訂單查詢系統改造,在改造之前的系統運行模式下,每秒只能支持300-400個查詢/秒的吞吐量,高流量的并發查詢只能通過分庫來實現。改造之后,可以實現高達上萬個查詢/秒的吞吐量,而且查詢速度可以保障在20毫秒左右。
新的技術架構可以按需彈性動態擴展,并發量增加時,還可以通過動態增加X86服務器來應對,保持毫秒級的響應時間。
12306能夠取得這樣翻天覆地的效果,靠技術上的小修小補是不可能的,必須有全新的思路,能夠給性能提升帶來杠桿式的作用。12306發現GemFire分布式內存數據平臺就是這樣一種技術。
GemFire分布式內存數據平臺的技術原理如上圖所示:通過云計算平臺虛擬化技術,將若干X86服務器的內存集中起來,組成最高可達數十TB的內存資源池,將全部數據加載到內存中,進行內存計算。計算過程本身不需要讀寫磁盤,只是定期將數據同步或異步方式寫到磁盤。GemFire在分布式集群中保存了多份數據,任何一臺機器故障,其它機器上還有備份數據,因此通常不用擔心數據丟失,而且有磁盤數據作為備份。GemFire支持把內存數據持久化到各種傳統的關系數據庫、Hadoop庫和其它文件系統中。
大家知道,當前計算架構的瓶頸在存儲,處理器的速度按照摩爾定律翻番增長,而磁盤存儲的速度增長很緩慢,由此造成巨大高達10萬倍的差距。這樣就很好理解GemFire為什么能夠大幅提高系統性能了。
按照計算與存儲的關系,我們可以將計算架構分為四代:
第一代,基于磁盤的單一系統:計算過程中需要從磁盤讀取數據。小型機、大型機是其中的佼佼者,將單一系統的性能做到極致。
第二代,基于磁盤的分布式集群系統:計算過程中需要從磁盤讀取數據,但通過分布系統將數據分散到不同的服務器磁盤上,提高整個系統的處理能力。目前很多大型互聯網和電子商務公司采用基于X86服務器的分布式集群系統,依靠海量的X86服務器部署解決高流量并發的問題。
第三代,基于內存的單一系統:將整個數據庫放在內存中,計算過程不需要從磁盤讀取數據。整個系統的性能取決于單一系統的性能。傳統的內存數據庫就是這樣的系統,對于企業級的應用可以很好地解決訪問速度的問題,但面對海量數據或是海量并發訪問的擴展性問題就無能為力。
第四代,基于內存的分布式集群系統:GemFire就是這樣的系統,并行計算是其關鍵技術之一,因而可以通過增加服務器部署規模,在內存計算的基礎上,線性擴展性能。
看完上述內容,你們對大數據中12306是采用哪種方案解決尖峰高流量并發,有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。