電商架構設計-通過系統和業務拆分,遵循單一職責原則SRP,保障整個系統的可用性和穩定性
《程式設計師》2014年11月刊:電商峰值系統架構設計
原文連結:http://www.csdn.net/article/2014-11-04/2822459該做什麼的就做什麼
保障整個系統的可用性和穩定性,第一步需要做 的就是,使整體架構清晰化、層次化。那麼,對系統進行合理拆分,是最直觀的選擇。從業務和技術角度出發,遵循SRP(Single Responsibility Principle)原則,合理拆分系統中的各個模組,明確每個模組的職責。這樣可以方便快速定位和排查問題,甚至可以有針對性地對每個模組進行優化。
拆分方式基本上分為兩種,路由拆分和物理拆 分。所謂路由拆分,就是按照請求特徵,將請求流量分攤到兩個或多個同質的叢集裡面;而物理拆分,就是在路由拆分的基礎上,按照業務和技術上的特徵,將同質的叢集進行徹底拆分,成為非同質叢集。
下面以交易流程為例,來看一下如何操作拆分。
交易流程主要包括購物車、下單、支付等幾個環節,具體的拆分結果,如圖1所示。
圖1 交易流程拆分結果
經過分析,整個交易流程按照架構層次可以分解為展示層、業務層及外圍應用三塊內容,這三部分由於職責差異比較大,所以先按照物理拆分,讓層次清晰。
再來看展示層,由於存在一些共享的東西,如頁面元素等,做物理拆分,會引入額外的成本,所以路由拆分是不錯的選擇。
接著來看業務層。這一層是很容易按照角色和業務場景進行拆分的,例如,交易管理服務是給管理人員提供管理功能的,需要考慮許可權、內控等問題;交易核心服務是給業務主流程提供主要業務功能,需要考慮可用性;交易查詢服務是讀取交易資料的主要途徑,需要考慮易用性;交易閘道器服務主要是對接外部支付渠道,需要考慮連通性。很明顯,這一層由於自身的差異性比較大,所以採用物理拆分是上上策。
最後來看外圍應用,其中包括後臺管理、日誌查 詢、業務監控及交易超時控制等,這些應用基本上都是在底層系統平臺(管理平臺、日誌平臺、監 控平臺以及任務平臺)進行二次開發而成的,所以天生就適合進行物理拆分。
從上面不難看出,拆分是一個細活,可以選擇的 維度很多,拆分方式也比較講究。良好的拆分方案,會讓系統更加清晰明瞭,每個模組該做什麼的就做什麼。這樣應對大型促銷活動時,可以遊刃有餘地按照模組特徵進行優化。
相關文章
- 一 :SRP(單一職責原則)
- 小話設計模式原則之(2):單一職責原則SRP設計模式
- 業務單系統架構設計心得(一)架構
- 設計原則之【單一職責原則】
- 設計模式筆記:單一職責原則(SRP, Single Responsibility Principle)設計模式筆記
- 物件導向設計原則之單一職責原則物件
- 單一職責原則
- 電商前端交易型系統設計原則前端
- 設計模式六大原則(一)----單一職責原則設計模式
- 設計和架構:業務開發指導原則架構
- 高效能高併發系統的穩定性保障
- 女人的作業系統和程式設計師的職責薦作業系統程式設計師
- [OOD] 為什麼單一職責原則(SRP)是最難運用的
- 掌握4C原則,設計高效的系統架構架構
- 設計模式的七大原則(1) --單一職責原則設計模式
- 設計模式六大原則(1):單一職責原則設計模式
- 企業如何透過熔斷降級增強服務穩定性和系統可用性?
- 系統設計原則
- 嘻哈說:設計模式之單一職責原則設計模式
- 面象物件設計6大原則之一:單一職責原則物件
- 單一職責原則筆記筆記
- 單一職責原則詳解
- 通過CSS設計模式搭建自己系統的CSS架構CSS設計模式架構
- 廣告電商系統開發和系統架構分析系列(第一章)架構
- Apache 的架構師們遵循的 30 條設計原則Apache架構
- 《JavaScript設計模式與開發實踐》原則篇(1)—— 單一職責原則JavaScript設計模式
- 快穩炫:電商峰值系統架構三字訣架構
- PetShop的系統架構設計(一)(轉)架構
- 架構整潔之道二(設計原則)架構
- 快取系統穩定性 - 架構師峰會演講實錄快取架構
- 系統架構設計:平滑釋出和ABTesting架構
- 電商系統設計之訂單
- 系統整合資質–IT專案管理中要遵循的溝通原則薦專案管理
- 7個方面影響OA系統穩定性
- 將單一職責原則應用於前端FE/BFF分層架構 - Expedia前端架構
- 被誤解的單一職責原則 - Joe
- 淺談系統的不確定性與穩定性
- B2C電商系統整體功能和流程設計總結