1、分層(橫向分割)
-分層架構(gòu)是邏輯上的,三層結(jié)構(gòu)可以物理部署在同一個物理機器上嚣鄙。一般分層的模塊分離部署。
-可繼續(xù)分層:應(yīng)用層:視圖層+業(yè)務(wù)邏輯層串结,服務(wù)層:數(shù)據(jù)接口層(適配層)+邏輯處理層
2哑子、分割(縱向分割)
-按功能、服務(wù)分割肌割,便于不通模塊分布式部署卧蜓,便于軟件開發(fā)和維護(hù)。
3把敞、分布式
-分層和分割都是為了分布式部署弥奸。不同模塊部署在不同的服務(wù)器上,通過遠(yuǎn)程調(diào)用協(xié)同工作奋早。
-存在的問題:
?* 調(diào)用都通過網(wǎng)絡(luò)盛霎,所以網(wǎng)絡(luò)條件影響性能;
?* 服務(wù)器多耽装,宕機概率大愤炸,一臺宕機可能導(dǎo)致多應(yīng)用不可訪問
?* 保持?jǐn)?shù)據(jù)一致性困難,分布式事務(wù)難以保證 * 網(wǎng)站依賴復(fù)雜掉奄,開發(fā)管理維護(hù)難 常用的分布式方案:
?* 分布式應(yīng)用和服務(wù):分層分割應(yīng)用和服務(wù)模塊规个。便于復(fù)用共同業(yè)務(wù)
?* 分布式靜態(tài)資源:動靜分離。靜態(tài)資源獨立分布式部署,采用獨立域名诞仓。
?* 分布式數(shù)據(jù)和存儲:海量數(shù)據(jù)不能存儲在單臺計算機內(nèi)缤苫。除了傳統(tǒng)關(guān)系數(shù)據(jù)庫進(jìn)行分布式部署外,各種NoSQL產(chǎn)品基本都是分布式的
?* 分布式計算:分布式計算框架進(jìn)行批處理計算墅拭。將計算程序分發(fā)到數(shù)據(jù)所在位置以加速計算榨馁。
4、集群
-多臺服務(wù)器部署相同應(yīng)用構(gòu)成一個集群帜矾,通過負(fù)載均衡設(shè)備對外提供服務(wù)。
-一個應(yīng)用由多臺服務(wù)器提供屑柔,當(dāng)某臺故障時屡萤,負(fù)載均衡設(shè)備會將請求轉(zhuǎn)發(fā)到其他機器上。提高可用性掸宛。
5死陆、緩存
?* CDN(內(nèi)容分發(fā)網(wǎng)絡(luò)):緩存靜態(tài)資源
?* 反向代理:前端架構(gòu)一部分,靜態(tài)資源唧瘾,無需將請求繼續(xù)轉(zhuǎn)發(fā)給服務(wù)器就能返回給用戶
?* 本地緩存:應(yīng)用服務(wù)器本地緩存措译,本機內(nèi)存中直接訪問數(shù)據(jù),無需訪問數(shù)據(jù)庫
?* 分布式緩存:分布式緩存集群饰序,應(yīng)用程序通過網(wǎng)絡(luò)通信訪問緩存數(shù)據(jù)
6领虹、異步
-系統(tǒng)解耦手段除了分層、分割求豫、分布外塌衰,還有異步。
?* 單一服務(wù)器中蝠嘉,多線程共享內(nèi)存隊列實現(xiàn)異步
* 多服務(wù)集群利用分布式消息隊列實現(xiàn)異步
具體見筆記“分布式消息隊列”:解耦最疆、異步、削峰
7蚤告、冗余
?* 冷備份:定期備份努酸、存檔保存
?* 熱備份:數(shù)據(jù)庫主從分離,實時同步
?* 容災(zāi)數(shù)據(jù)中心:網(wǎng)站程序和數(shù)據(jù)實時同步到多個容災(zāi)數(shù)據(jù)中心
8杜恰、自動化:自動化代碼管理获诈、自動化測試、自動化安全監(jiān)測心褐、自動化部署烙荷、自動化監(jiān)控、自動化報警檬寂、自動化失效轉(zhuǎn)移终抽、自動化失效恢復(fù)、自動化降級、自動化分配資源
9昼伴、安全