高併發大訪問量架構設計演進之路 歸納總結
第01:大型架構的演進之路
第02(上):分布式快取
第02(下):分布式快取
第03:分布式訊息佇列
第04:分布式資料儲存
第05:分布式服務框架
第06:高效能系統架構
第07:高可用系統架構
第08:系統的安全架構
第09:架構實戰案例分析
第10:如何成為技術專家
系統的垂直伸縮,水平伸縮
系統的效能瓶頸:分部式快取;分布式資料儲存,分布式服務架構;
強烈的好奇心,工程技術,產生價值賺錢(科學研究不同)
紮實的軟體技術基礎:作業系統,資料結構,設計模式,程式語言,
出色的程式設計能力:優秀的**
深刻領悟主流技術產品模式;
網際網路架構的關鍵技術:快取,非同步,分布
網際網路架構的核心要素:效能,可用,安全
架構設計方案:系統,框架,資料庫
架構師的成長:搞定問題的攻略
大型分布式架構
優秀架構師必備的技能:
強烈的好奇心,
敏銳的業務嗅覺,工程技術,產生價值賺錢(科學研究不同)
紮實的軟體技術基礎:作業系統,資料結構,資料庫原理,設計模式,程式語言,
出色的程式設計能力:優秀的**
深刻領悟主流技術產品模式:站在巨人的肩膀上思考;
架構知識體系和學習路徑:
基礎紮實:作業系統原理,資料結構,資料庫原理,演算法能力,設計模式;
技術產品:快取,非同步,分布式儲存,微服務
架構設計考慮的點:高可用,高效能,高安全
大型網際網路架構:高併發,大流量,高可用,海量資料,使用者分布廣,安全,發布平緩
垂直伸縮:提高cpu,cipan,小型機到大型機
水平伸縮:
少量使用者,單機系統:應用伺服器:應用程式,檔案,資料庫
萬級使用者,資料庫與應用分離,2,3臺伺服器
十萬級使用者,快取+應用伺服器集群
百萬級使用者,反向**,cdn+資料庫讀寫分離
千萬級使用者,分布式檔案系統+分布式資料庫系統
億級使用者,搜素引擎,nosql,訊息佇列+分布式服務
快取知識架構圖:
特點:技術簡單,效能提公升顯著,應用場景多
快取快:記憶體,最終結果不需計算,降低io裝置響應
快取儲存:hash表,key,value比資料庫讀取快
設計快取:快取鍵集合總數要小,快取時長,快取空間大
快取型別:
通讀快取:
**快取存在客戶端
反向**:**資料中心,沒有時在訪問反向**快取伺服器,沒有在訪問web應用伺服器
內容分發cdn快取:資料機房部署的快取伺服器
旁快取:物件快取需連線,沒有°資料庫,加裝到快取伺服器中
合理使用快取:
一次修改,多次讀取熱點資料 資料不一致與髒讀
快取雪崩:物件快取是通過加裝資料到內容
分布式快取
**和反向**
內容分發網路cdn
分布式物件快取架構設計:memached伺服器集群(memached伺服器,memached客戶端程式)
3分布式訊息佇列
分布式訊息佇列原理:通過訊息佇列來讓訊息生產者和訊息消費者到達非同步,互不相關,同步呼叫,非同步呼叫,非同步處理,易於伸縮,
構建事件驅動架構:點對點模型:邏輯相對獨立,耗時長
發布訂閱模式:邏輯複雜
訊息佇列的優點:非同步處理,減少時間,易伸縮,平衡高峰處理壓力,填補低峰
訊息佇列的缺點:訊息無序,重複佇列,複雜度風險
訊息佇列的反模式:阻塞式呼叫,
訊息佇列的產品:kafka,rabbitmq,activemq
4分布式資料儲存
mysql主從複製架構:實現資料庫讀寫分離,更新主資料庫,記錄日誌,從資料庫根據日誌更新從資料庫
一主多從複製的優點:分攤負載,高可用,便於冷備,專機專用
mysql主主複製方案:可用提高資料庫主資料庫高可用性
更新表結構會導致巨大的延時
資料分片原理:資料分片方案:資料分片擴容:資料庫部署:分庫,分片
資料庫部署:單一資料庫,主從資料庫,一主多從,多主多從,分片儲存
大規模資料衝突性:nosql,時間戳大的資料覆蓋時間戳小的資料
mysql億級資料分割槽儲存
分布式資料庫架構
nosql資料庫cap原理,最終一致性
分布式資料庫中介軟體:mycat 支援join
5分布式服務架構,微服務
單體系統的挑戰:編譯部署困難,**分支管理困難,資料庫連線耗盡,新增業務困難,發布困難,
分布式服務架構原理:根據模組將單體系統分解成不同的應用,單獨發布到不同伺服器
微服務架構;dubbo,spring cloud
訊息佇列kafka,rocketmq,activema,rabbitmq
服務治理與最佳實踐:需求,價值,設計原則,實踐,找工具,事件索源
6高效能系統架構:效能測試,效能優化
系統效能度量方法:效能測試,效能優化,主觀體驗,客觀測試
系統效能主要指標:效能計算器(cpu,i/o,記憶體),響應時間,吞吐量,併發數(同事請求資料),tps,qps
系統效能測試:效能測試,負載測試,壓力測試,穩定性測試
系統效能優化的7層境界:機房骨幹網路優化(多點部署),伺服器硬體優化,作業系統優化,虛擬機器優化,基礎元件優化tomcat,軟體架構優化(快取,非同步,集群),
軟體**優化(面試物件,併發,多執行緒,非同步,資料機構,陣列,鍊錶,has表特性,資料庫優化)
7高可用系統架構
系統可用性度量與管理:n個9,qq是9個9,99.99%可用性指標,故障分
dns被劫持: cdn伺服器不可用,宕機,**bug,黑客攻擊,第三方服務部可用
系統高可用架構:負載均衡,備份與失效,訊息佇列,限流與降級,異地多活
系統高可用策略:應用伺服器負載均衡伺服器,http重定向負載均衡,dns負載均衡,反向**伺服器(應用在20臺伺服器左右的環境),
ip層負載均衡,資料鏈路層負載均衡(大型網際網路應用配置的標準),限流(對高併發限流),降級(關閉部分功能,評價,物流確認)
異地多活多機房架構,就近原則,資料同步,主機房,主從模式
備份,失效轉移,限流與降級
高可用運維:自動化部署,自動化監控(cpu,i/o),自動化測試,預發布測試
8高安全的系統架構
web攻擊:xss攻擊(惡意url攻擊,< 將《轉譯(),sql注入攻擊(編定引數,使用者提交的只有引數不是sql語句),csrf攻擊(表單token,驗證碼)
web防護:過濾消毒將《轉譯(,sql引數繫結,驗證碼,web防火牆,開源防火牆modsecurity
資料加密技術:單項雜湊加密(明文到密文),對稱加密(加密解密),非對稱加密
資訊過濾與反垃圾:分類演算法,布隆過濾器
如何成為架構師:
從普通程式設計師到頂尖專家之路
扭曲現實力場,架構師重新定義問題
架構師閱讀清單
目錄分布式訊息佇列
分布式訊息佇列原理
構建事件驅動架構
訊息佇列的優缺點
訊息佇列的反模式
分布式資料儲存
mysql主從複製架構
mysql億級資料分割槽儲存
分布式資料庫架構
nosql資料庫
分布式服務架構
單體系統的挑戰
分布式服務架構原理
服務治理與最佳實踐
高效能系統架構
系統效能度量方法
系統效能主要指標
系統效能測試:負載與壓力測試
系統效能優化的7層境界
高可用系統架構
系統可用性度量與管理
系統高可用策略:備份,失效轉移,限流與降級
高可用運維
高安全的系統架構
web攻擊與防護
資料加密技術與秘鑰安全
資訊過濾與反垃圾
架構設計原則 高併發
架構設計原則 高併發 高併發設計可以從以下幾方面考慮 1.無狀態 無狀態的應用容易進行水平擴充套件。實際常用 應用無狀態,配置檔案有狀態,例如,不同的機房讀取不同的配置檔案,通過配置中心指定。2.拆分 拆分維度 3.服務化 服務化需要考慮自動服務註冊,和服務發現,還有服務的分組 隔離,例如,有的系統...
高併發架構設計原則 拆分
在系統設計初期,是做乙個大而全的系統還是根據模組進行拆分要根據環境和需求進行權衡。訪問量不大 功能簡單 研發資源不多時可以做乙個大而全的系統即可 如果訪問量大資源充足 功能繁多可以考慮按功能拆分系統。下面幾種拆分維度 按照系統功能 業務拆分,比如商品系統 購物車系統 結算系統 訂單系統等。對乙個系統...
高併發架構設計學習總結
設計目標 打造乙個高可用 高效能 易擴充套件 可伸縮性強的應用系統。架構分類 1.業務架構,如何分拆模組,如何大團隊協作,快速高效滿足業務迭代,微服務 2.效能架構 高併發架構,高負載架構,架構 軟體應用分為 架構設計,程式,資料結構,演算法 常用設計方向 流量分流 nginx負載均衡,反向 靜態化...