1,高併發
併發量指標
壓力測試
使用分布式負載均衡,快取,訊息佇列,服務降級來實現
2,資料庫
分布式部署:主從複製,讀寫分離
資料庫設計
3,高可用
集群化自動故障轉移
資料容災備份
4,分布式:系統部署方式
參考:其實,分布式系統說白了,就是很多機器組成的集群,靠彼此之間的網路通訊,擔當的角色可能不同,共同完成同乙個事情的系統。如果按」實體「來劃分的話,就是如下這幾種:
節點網路
儲存5,微服務:一種架構設計方式
就是服務拆分
6,連線池:
訪問資料的時候不用每次都建立連線,而是使用連線池裡面連線好的物件
7,負載均衡
nginx反向****請求,分擔訪問流量
8,rpc
遠端過程呼叫
9,訊息佇列
非同步:提供效能
解耦:併發問題序列化
削峰:解決高併發
10,分布式鎖
分布式和高併發環境下,多台機器上多個程序對乙個資料進行操作,如果不做互斥就會出現
多個訪問方對同乙個資源進行操作,需要進行互斥,通常是利用乙個這些訪問方同時能夠訪問到的lock來實施互斥的。
11,快取
穿透:請求快取中沒有的資料,直接請求資料庫;資料庫沒查到就寫空值到快取
雪崩:快取抗不住,直接攻擊資料庫導致資料庫也扛不住;快取高可用+限流&降級+快取持久化
擊穿:熱點資料失效瞬間,導致資料庫扛不住;熱點資料快取永不過期
12,微服服架構
參考:服務註冊與發現
服務熔斷
服務限流
配置中心
從0開始學架構 推薦
程式設計師的成長繞不開架構設計,有時架構設計就像鴻溝一樣擋在程式設計師晉公升之路上,只要跨過去就可以海闊天空。但不少技術能力很強的程式設計師依然不能完全掌握架構設計,這與架構設計的思維方式和訓練機制與寫 有很大差異有關,加之人們對架構設計存在很多誤區,缺乏一套行之有效的架構設計方 就可能導致在實踐過...
從概念性架構到實際架構
軟體架構的一般設計過程 先進行概念性架構的設計,把最關鍵的設計要素和互動機制確定,然後在考慮具體技術的應用,設計出實際架構。什麼是概念性架構?概念性架構的特點 通過主要的設計元素以及它們之間的關係來描述系統。符合軟體架構的特點 架構 元件 互動。往往是粗粒度的。包括一些高層次的決策,對將來系統的擴充...
學習 從0開始學架構 5
儲存高可用方案的本質都是通過將資料複製到多個儲存裝置,通過資料冗餘的方式來實現高可用,其複雜性主要體現在如何應對複製延遲和中斷導致的資料不一致問題 主備 讀寫主機,備機 主要還是起到乙個備份作用,並不承擔實際的業務讀寫操作 主從 主機讀寫,從機讀 雙機切換 狀態判斷 切換決策 中介式 主機和備機不再...