三種框架簡介
微服務(wù)應(yīng)用
1 單機(jī)應(yīng)用

2 集群應(yīng)用

- DB查詢優(yōu)化:
- 搜索集群,用以提升數(shù)據(jù)檢索性能,解決類似like查詢慢的問題。
- 緩存集群,在DB和應(yīng)用集群之間增加一層。用以提升熱點(diǎn)數(shù)據(jù)訪問性能。
- DB寫入優(yōu)化:分庫分表
- 垂直拆分:將不同的業(yè)務(wù)數(shù)據(jù)放到不同的數(shù)據(jù)庫實(shí)例中。
- 水平拆分:把同一個(gè)表中的數(shù)據(jù)拆分到多個(gè)數(shù)據(jù)庫中。
3 微服務(wù)應(yīng)用

- 將整個(gè)系統(tǒng)進(jìn)行服務(wù)化拆分,封裝成多個(gè)服務(wù),獨(dú)立開發(fā)、部署和運(yùn)維。
- 服務(wù)之間可以通過HTTP和RPC協(xié)議進(jìn)行通信。(開源框架:Dubbo、Thrift)
- 服務(wù)之間異步通信需要引入消息中間件。(如:kafka)
框架底層技術(shù)
服務(wù)發(fā)現(xiàn)
限流、熔斷
故障轉(zhuǎn)移
面向互聯(lián)網(wǎng)的三高系統(tǒng),最關(guān)注的軟件質(zhì)量屬性是:性能、可用性、伸縮性、擴(kuò)展性、安全性。
而構(gòu)建此類系統(tǒng),最常見的架構(gòu)模式有:橫向分層、縱向分割、分布式化、集群化、使用緩存、使用異步模式、使用冗余、自動(dòng)化(發(fā)布、部署、監(jiān)控)。
具體來說,可以在不同層次常用的技術(shù)有:
前端架構(gòu)
? 瀏覽器優(yōu)化技術(shù):合理布局,頁面緩存,減少http請求數(shù),頁面壓縮,減少 cookie 傳輸。
? CDN
? DNS負(fù)載均衡
? 動(dòng)靜分離,靜態(tài)資源獨(dú)立部署
? 動(dòng)態(tài)圖片獨(dú)立提供服務(wù)
? 反向代理
應(yīng)用層架構(gòu)
? 業(yè)務(wù)拆分
? 負(fù)載均衡
? 虛擬化服務(wù)器、容器化
? 無狀態(tài)(以及分布式 Session)
? 分布式緩存
? 異步、事件驅(qū)動(dòng)架構(gòu)、消息隊(duì)列
? 多線程
? 動(dòng)態(tài)頁面靜態(tài)化
服務(wù)層架構(gòu)
? 分布式微服務(wù)(分級管理,超時(shí)設(shè)置,異步調(diào)用,服務(wù)降級,冪等性設(shè)計(jì)。)
? 同應(yīng)用層架構(gòu)
存儲(chǔ)層架構(gòu)
? DFS
? 關(guān)系數(shù)據(jù)庫路由
? NoSQL數(shù)據(jù)庫
? 數(shù)據(jù)同步
? 數(shù)據(jù)冗余
安全架構(gòu)
? Web攻擊(XSS、Sql Injection)
? 數(shù)據(jù)加密
? 密鑰管理
發(fā)布、運(yùn)維
? 自動(dòng)化測試與發(fā)布
? 灰度發(fā)布
? 瀏覽器數(shù)據(jù)采集
? 服務(wù)器業(yè)務(wù)數(shù)據(jù)采集
? 服務(wù)器性能數(shù)據(jù)采集
? 系統(tǒng)監(jiān)控
? 系統(tǒng)報(bào)警
機(jī)房
? 散熱、省電、定制服務(wù)器