學(xué)習(xí)完整課程請(qǐng)移步 互聯(lián)網(wǎng) Java 全棧工程師
本節(jié)視頻
系統(tǒng)架構(gòu)需要遵循的三個(gè)標(biāo)準(zhǔn)
- 提高敏捷性:及時(shí)響應(yīng)業(yè)務(wù)需求,促進(jìn)企業(yè)發(fā)展
- 提升用戶體驗(yàn):提升用戶體驗(yàn)谱邪,減少用戶流失
- 降低成本:降低增加產(chǎn)品隶校、客戶或業(yè)務(wù)方案的成本
傳統(tǒng)的開發(fā)模式
先來看看傳統(tǒng)的 WEB 開發(fā)方式吱肌,通過對(duì)比比較容易理解什么是 微服務(wù)架構(gòu)。和 微服務(wù) 相對(duì)應(yīng)的秩冈,這種方式一般被稱為 單體式開發(fā)(Monolithic)爆阶。
既所有的功能打包在一個(gè) WAR 包里,基本沒有外部依賴(除了容器)溶褪,部署在一個(gè) JavaEE 容器(Tomcat币旧,JBoss,WebLogic)里竿滨,包含了 DO/DAO佳恬,Service捏境,UI 等所有邏輯。
優(yōu)點(diǎn)
- 開發(fā)簡(jiǎn)單毁葱,集中式管理
- 基本不會(huì)重復(fù)開發(fā)
- 功能都在本地垫言,沒有分布式的管理和調(diào)用消耗
缺點(diǎn)
- 效率低:開發(fā)都在同一個(gè)項(xiàng)目改代碼,相互等待倾剿,沖突不斷
- 維護(hù)難:代碼功功能耦合在一起筷频,新人不知道何從下手
- 不靈活:構(gòu)建時(shí)間長(zhǎng),任何小修改都要重構(gòu)整個(gè)項(xiàng)目前痘,耗時(shí)
- 穩(wěn)定性差:一個(gè)微小的問題凛捏,都可能導(dǎo)致整個(gè)應(yīng)用掛掉
- 擴(kuò)展性不夠:無法滿足高并發(fā)下的業(yè)務(wù)需求
微服務(wù)架構(gòu)
目的
有效的拆分應(yīng)用,實(shí)現(xiàn)敏捷開發(fā)和部署
開發(fā)和交付中的伸縮立方
X軸: 運(yùn)行多個(gè)負(fù)載均衡器之后的運(yùn)行實(shí)例
Y軸: 將應(yīng)用進(jìn)一步分解為微服務(wù)(分庫(kù))
Z軸: 大數(shù)據(jù)量時(shí)芹缔,將服務(wù)分區(qū)(分表)