構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐

構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐

ID:8847619

大?。?18.07 KB

頁數(shù):23頁

時間:2018-04-09

構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐_第1頁
構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐_第2頁
構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐_第3頁
構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐_第4頁
構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐_第5頁
資源描述:

《構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。

1、構(gòu)建高并發(fā)高可用的電商平臺架構(gòu)實踐一、?設(shè)計理念??1.?????空間換時間1)?????多級緩存,靜態(tài)化客戶端頁面緩存(httpheader中包含Expires/CacheofControl,lastmodified(304,server不返回body,客戶端可以繼續(xù)用cache,減少流量),ETag)反向代理緩存應(yīng)用端的緩存(memcache)內(nèi)存數(shù)據(jù)庫Buffer、cache機制(數(shù)據(jù)庫,中間件等)2)?????索引哈希、B樹、倒排、bitmap哈希索引適合綜合數(shù)組的尋址和鏈表的插入特性,可以實現(xiàn)數(shù)據(jù)的快速存

2、取。B樹索引適合于查詢?yōu)橹鲗?dǎo)的場景,避免多次的IO,提高查詢的效率。倒排索引實現(xiàn)單詞到文檔映射關(guān)系的最佳實現(xiàn)方式和最有效的索引結(jié)構(gòu),廣泛用在搜索領(lǐng)域。Bitmap是一種非常簡潔快速的數(shù)據(jù)結(jié)構(gòu),他能同時使存儲空間和速度最優(yōu)化(而不必空間換時間),適合于海量數(shù)據(jù)的的計算場景。2.?????并行與分布式計算?1)?????任務(wù)切分、分而治之(MR)在大規(guī)模的數(shù)據(jù)中,數(shù)據(jù)存在一定的局部性的特征,利用局部性的原理將海量數(shù)據(jù)計算的問題分而治之。MR模型是無共享的架構(gòu),數(shù)據(jù)集分布至各個節(jié)點。處理時,每個節(jié)點就近讀取本地存儲的數(shù)據(jù)

3、處理(map),將處理后的數(shù)據(jù)進行合并(combine)、排序(shuffleandsort)后再分發(fā)(至reduce節(jié)點),避免了大量數(shù)據(jù)的傳輸,提高了處理效率。?2)?????多進程、多線程并行執(zhí)行(MPP)并行計算(ParallelComputing)是指同時使用多種計算資源解決計算問題的過程,是提高計算機系統(tǒng)計算速度和處理能力的一種有效手段。它的基本思想是用多個處理器/進程/線程來協(xié)同求解同一問題,即將被求解的問題分解成若干個部分,各部分均由一個獨立的處理機來并行計算。和MR的區(qū)別在于,它是基于問題分解的,

4、而不是基于數(shù)據(jù)分解。3.?????多維度的可用1)?????負載均衡、容災(zāi)、備份隨著平臺并發(fā)量的增大,需要擴容節(jié)點進行集群,利用負載均衡設(shè)備進行請求的分發(fā);負載均衡設(shè)備通常在提供負載均衡的同時,也提供失效檢測功能;同時為了提高可用性,需要有容災(zāi)備份,以防止節(jié)點宕機失效帶來的不可用問題;備份有在線的和離線備份,可以根據(jù)失效性要求的不同,進行選擇不同的備份策略。2)?????讀寫分離讀寫分離是對數(shù)據(jù)庫來講的,隨著系統(tǒng)并發(fā)量的增大,提高數(shù)據(jù)訪問可用性的一個重要手段就是寫數(shù)據(jù)和讀數(shù)據(jù)進行分離;當然在讀寫分離的同時,需要關(guān)注

5、數(shù)據(jù)的一致性問題;對于一致性的問題,在分布式的系統(tǒng)CAP定量中,更多的關(guān)注于可用性。3)?????依賴關(guān)系平臺中各個模塊之間的關(guān)系盡量是低耦合的,可以通過相關(guān)的消息組件進行交互,能異步則異步,分清楚數(shù)據(jù)流轉(zhuǎn)的主流程和副流程,主副是異步的,比如記錄日志可以是異步操作的,增加整個系統(tǒng)的可用性。當然在異步處理中,為了確保數(shù)據(jù)得到接收或者處理,往往需要確認機制(confirm、ack)。但是有些場景中,雖然請求已經(jīng)得到處理,但是因其他原因(比如網(wǎng)絡(luò)不穩(wěn)定),確認消息沒有返回,那么這種情況下需要進行請求的重發(fā),對請求的處理設(shè)

6、計因重發(fā)因素需要考慮冪等性。4)?????監(jiān)控監(jiān)控也是提高整個平臺可用性的一個重要手段,多平臺進行多個維度的監(jiān)控;模塊在運行時候是透明的,以達到運行期白盒化。4.?????伸縮1)?????拆分拆分包括對業(yè)務(wù)的拆分和對數(shù)據(jù)庫的拆分。系統(tǒng)的資源總是有限的,一段比較長的業(yè)務(wù)執(zhí)行如果是一竿子執(zhí)行的方式,在大量并發(fā)的操作下,這種阻塞的方式,無法有效的及時釋放資源給其他進程執(zhí)行,這樣系統(tǒng)的吞吐量不高。需要把業(yè)務(wù)進行邏輯的分段,采用異步非阻塞的方式,提高系統(tǒng)的吞吐量。隨著數(shù)據(jù)量和并發(fā)量的增加,讀寫分離不能滿足系統(tǒng)并發(fā)性能的要求

7、,需要對數(shù)據(jù)進行切分,包括對數(shù)據(jù)進行分庫和分表。這種分庫分表的方式,需要增加對數(shù)據(jù)的路由邏輯支持。2)?????無狀態(tài)對于系統(tǒng)的伸縮性而言,模塊最好是無狀態(tài)的,通過增加節(jié)點就可以提高整個的吞吐量。5.?????優(yōu)化資源利用1)?????系統(tǒng)容量有限系統(tǒng)的容量是有限的,承受的并發(fā)量也是有限的,在架構(gòu)設(shè)計時,一定需要考慮流量的控制,防止因意外攻擊或者瞬時并發(fā)量的沖擊導(dǎo)致系統(tǒng)崩潰。在設(shè)計時增加流控的措施,可考慮對請求進行排隊,超出預(yù)期的范圍,可以進行告警或者丟棄。2)?????原子操作與并發(fā)控制對于共享資源的訪問,為了防

8、止沖突,需要進行并發(fā)的控制,同時有些交易需要有事務(wù)性來保證交易的一致性,所以在交易系統(tǒng)的設(shè)計時,需考慮原子操作和并發(fā)控制。保證并發(fā)控制一些常用高性能手段有,樂觀鎖、Latch、mutex、寫時復(fù)制、CAS等;多版本的并發(fā)控制MVCC通常是保證一致性的重要手段,這個在數(shù)據(jù)庫的設(shè)計中經(jīng)常會用到。3)?????基于邏輯的不同,采取不一樣的策略平臺中業(yè)務(wù)邏輯存在不同

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。