設計目標
打造乙個高可用、高效能、易擴充套件、可伸縮性強的應用系統。
架構分類
1.業務架構,如何分拆模組,如何大團隊協作,快速高效滿足業務迭代,微服務
2.效能架構:高併發架構,高負載架構,架構**
軟體應用分為
架構設計,程式,資料結構,演算法
常用設計方向
流量分流:nginx負載均衡,反向**
靜態化:前端頁面靜態化,js,css壓縮為乙個檔案,瀏覽器快取,啟用壓縮,css先載入,js後載入
cdn分流:資源部署cdn,分布式部署,內網通訊,分布式檔案系統
快取:redis多級快取,加快運算速度,在redis 中做活動庫存扣減,並以一定週期同步給資料庫:
非同步化操作:訊息佇列,應用解耦,消除併發訪問高峰,非同步化非同步寫入資料庫,可以起到很好的削峰作用
服務化:使用引擎,常駐記憶體應用,rpc呼叫,全文搜尋引擎,zk+dubbo,php+go,
應用獨立部署:(應用集群)web與資料庫分離,redis分離,後台與前台分離,請求與備份統計分離
資料庫集群:mysql集群mycat,讀寫分離/分表分庫,主從互備,索引使用,innodb事務提交,大資料hadoop,日誌分析
安全:讓你拿不到資料庫,許可權控制,伺服器跳板登入,熔斷保護:攻擊,高流量停掉,容災/容錯,基線構建
資源復用:單例和物件池
伺服器的優化手段
主要有快取,集群,非同步等。
資源復用主要有兩種模式:單例和物件池。
**架構的伸縮性設計
一般來說。**的伸縮性設計可分為兩類:
一類是根據功能進行物理分離實現伸縮,一類是單一功能通過集群實現伸縮。
前者是不同的伺服器部署不同的服務,提供不同的功能;
後者是集群內的伺服器部署相同的服務實現相同的功能。
也就這些
應用集群,多級快取,單點登入,資料庫集群,服務化,訊息佇列外。還有cdn,反向**,分布式檔案系統,
大資料處理等系統。
架構設計原則 高併發
架構設計原則 高併發 高併發設計可以從以下幾方面考慮 1.無狀態 無狀態的應用容易進行水平擴充套件。實際常用 應用無狀態,配置檔案有狀態,例如,不同的機房讀取不同的配置檔案,通過配置中心指定。2.拆分 拆分維度 3.服務化 服務化需要考慮自動服務註冊,和服務發現,還有服務的分組 隔離,例如,有的系統...
高併發架構設計原則 拆分
在系統設計初期,是做乙個大而全的系統還是根據模組進行拆分要根據環境和需求進行權衡。訪問量不大 功能簡單 研發資源不多時可以做乙個大而全的系統即可 如果訪問量大資源充足 功能繁多可以考慮按功能拆分系統。下面幾種拆分維度 按照系統功能 業務拆分,比如商品系統 購物車系統 結算系統 訂單系統等。對乙個系統...
高可用 高併發 負載均衡架構設計
2017 09 05 58沈劍 架構師之路 架構師之路 架構師之路 功能介紹 架構師之路,堅持撰寫接地氣的架構文章 都收到好評 本文再做總結,體系化介紹高可用,高併發,負載均衡的一些架構技術。一 高可用 文章 究竟什麼是網際網路高可用架構設計 內容 二 高併發 文章 究竟什麼是網際網路高併發架構設計...