什么是分布式架構
單體
分布式集群
分布式的高可用
搭建服務集群,提高負載,避免單點故障
應對災難,搭建異地災備,預防地區因發生地震等自然災害
接口限流以及服務降級。為防止過高的並發量造成服務器負載過高而出現故障
故障監控報警
服務的可伸縮性,易於水平擴張服務器數量。
使用緩存降低數據庫壓力
使用CDN等加速靜態資源的訪問
分布式能夠給架構帶來什么
應用服務器集群:
隨着訪問量的繼續增加,單台應用服務器也無法滿足需求了,我們就需要搭建應用服務器集群來對外提供服務了
數據負載-讀寫分離
主從數據庫之間的數據需要同步
應用中需要根據業務進行對應數據源的選擇
搜索引擎/Nosql負載-讀寫分離
Nosql/Elasticsearch等
數據量壓力-拆表/拆庫
據的垂直拆分和水平拆分
>=1000萬,考慮拆表
>=1億 ,考慮拆庫
應用壓力-應用拆分
應用拆分,按照領域模型將我們的用戶、商品、交易拆分成多個子系統
中台實現的基礎--》微服務
案例—電商系統
系統分層,微服務管理
案例—Nginx反向代理
務器層面分流
案例—WCF分布式
每層中的服務器,可水平擴展(集群),可縱向擴展(按系統/域/功能切分)
案例—微服務架構
啞鈴架構
微服務分布式集成
前端后端雙向擴展。
布式常見的坑—數據一致性
1、系統間的數據一致性。
2、系統內應用間的數據一致性。
3、應用內部對應多數據庫的數據一致性,是個反模式,不要做通用方案。
4、一個數據庫對應多個應用的數據一致性。
數據中台
分布式優點
分布式結構就是將一個完整的系統,按照業務功能,拆分成一個個獨立的子系統,在分布式結構中,每個子系統就被稱為“服務”。這些子系統能夠獨立運行在web容器中