無狀態。無狀態很容易水平擴充套件,進而應對更大併發。實際可以把狀態做到配置檔案中進而做到應用無狀態。
拆分。尤其是要應對高併發的複雜系統一定要做好抽象拆分。可以先按系統業務維度,功能維度,讀者維度,aop維度,層次模組維度進行拆分。
服務化。從程序內服務到單機遠端服務再到集群手動註冊服務,然後公升級為自動註冊和發現服務,再進行服務分組隔離或路由,再考慮服務治理如限流黑白名單等。
訊息佇列。使用訊息佇列讓服務解耦,非同步處理,流量緩衝等。
資料異構。實現資料的自我控制,當出問題時和其它系統互不影響,一般也通過訊息佇列來實現資料分發。
使用快取。從瀏覽器客戶端快取,到cdn接入層應用層快取,甚至是分布式快取。
並行化。再設計拆分系統是要時刻考慮盡可能將沒有依賴關係的操作並行化。
架構設計原則 高併發
架構設計原則 高併發 高併發設計可以從以下幾方面考慮 1.無狀態 無狀態的應用容易進行水平擴充套件。實際常用 應用無狀態,配置檔案有狀態,例如,不同的機房讀取不同的配置檔案,通過配置中心指定。2.拆分 拆分維度 3.服務化 服務化需要考慮自動服務註冊,和服務發現,還有服務的分組 隔離,例如,有的系統...
高併發架構設計原則 拆分
在系統設計初期,是做乙個大而全的系統還是根據模組進行拆分要根據環境和需求進行權衡。訪問量不大 功能簡單 研發資源不多時可以做乙個大而全的系統即可 如果訪問量大資源充足 功能繁多可以考慮按功能拆分系統。下面幾種拆分維度 按照系統功能 業務拆分,比如商品系統 購物車系統 結算系統 訂單系統等。對乙個系統...
高併發架構設計原則 訊息佇列
解耦 消峰 非同步 有abcd四個系統,a系統有一條資料需要傳給bcd,a系統不僅要關心資料傳送還要處理資料傳送bcd其中產生的異常,如b掛掉了怎麼辦,a是否重傳?如果使用訊息佇列,a系統只負責傳送訊息到訊息佇列,bcd消費訊息佇列中的訊息即可,a系統不關心訊息發給誰了,誰消費失敗了等等問題。類似於...