1 項(xiàng)目架構(gòu)
1.1 單一架構(gòu)
- 描述:一個(gè)項(xiàng)目整體只有一個(gè)工程。
- 其他名稱(chēng):all in one或“單機(jī)版”
1.2 分布式架構(gòu)
1.2.1 偽分布式
開(kāi)發(fā)時(shí)使用了多個(gè)工程,但在服務(wù)器上運(yùn)行時(shí)只有一個(gè)war包。
1.2.2 真正分布式
2 方法本地調(diào)用和遠(yuǎn)程調(diào)用
2.1 本地調(diào)用
調(diào)用當(dāng)前項(xiàng)目?jī)?nèi)部的方法,調(diào)用過(guò)程沒(méi)有經(jīng)過(guò)網(wǎng)絡(luò)。
2.2 遠(yuǎn)程調(diào)用
通過(guò)網(wǎng)絡(luò)調(diào)用另外一個(gè)工程里的另一個(gè)方法。
2.3 實(shí)現(xiàn)方法遠(yuǎn)程調(diào)用的技術(shù)
2.3.1 WebService
WebService不是一個(gè)具體的技術(shù),而是一系列方法遠(yuǎn)程調(diào)用技術(shù)的統(tǒng)稱(chēng)。
2.3.2 Dubbo+Zookeeper
Dubbo是阿里開(kāi)發(fā)的一款RPC框架——底層基于RPC(遠(yuǎn)程過(guò)程調(diào)用)的方法遠(yuǎn)程調(diào)用和服務(wù)治理框架。
Zookeeper 是 Apacahe Hadoop 的子項(xiàng)目,是一個(gè)樹(shù)型的目錄服務(wù),支持變更推送,適合作為 Dubbo 服務(wù)的注冊(cè)中心,工業(yè)強(qiáng)度較高,可用于生產(chǎn)環(huán)境,并推薦使用。
在分布式架構(gòu)體系中Dubbo扮演了服務(wù)治理框架的角色,Zookeeper扮演了服務(wù)注冊(cè)中心的角色。
2.3.3 SpringBoot+SpringCloud
2.4 方法遠(yuǎn)程調(diào)用的意義
2.4.1 對(duì)項(xiàng)目?jī)?nèi)部來(lái)說(shuō)
讓我們能夠?qū)崿F(xiàn)分布式架構(gòu)。
2.4.2 對(duì)項(xiàng)目外部來(lái)說(shuō)
讓我們能夠調(diào)用外部的第三方接口。
3 分布式架構(gòu)的優(yōu)缺點(diǎn)
3.1 優(yōu)點(diǎn)
3.1.1 模塊化、組件化程度更高
讓項(xiàng)目更容易開(kāi)發(fā)、維護(hù)和分工。也是高內(nèi)聚、低耦合的一種體現(xiàn)。
3.1.2 提升性能
需要用到分布式架構(gòu)的項(xiàng)目往往是訪問(wèn)量很大的互聯(lián)網(wǎng)項(xiàng)目。
- 集群[同構(gòu)]:多個(gè)服務(wù)器上運(yùn)行相同的模塊
- 分布式[異構(gòu)]:多個(gè)服務(wù)器上運(yùn)行不同的模塊
3.2 缺點(diǎn)
相對(duì)于單一架構(gòu)結(jié)構(gòu)更復(fù)雜,部署更復(fù)雜,同時(shí)存在數(shù)據(jù)不一致問(wèn)題,需要通過(guò)分布式事務(wù)解決。
4 服務(wù)
4.1 接口
對(duì)外暴露具體功能的接口已經(jīng)包括了外部調(diào)用時(shí)所需要的全部信息,所以這個(gè)接口就成了整個(gè)功能的代表。
所以在團(tuán)隊(duì)交流時(shí)就使用接口指代整個(gè)工程。
- “寫(xiě)接口”:開(kāi)發(fā)接口代表的工程。
- “調(diào)接口”:調(diào)用接口代表的工程。
4.2 服務(wù)
和操作系統(tǒng)提供的“守護(hù)進(jìn)程”形式服務(wù)很像,它持續(xù)在運(yùn)行,隨時(shí)可以響應(yīng)請(qǐng)求——提供服務(wù)。
4.3 SOA
Service Oriented Architecture
面向服務(wù)的架構(gòu)。
底層基于“服務(wù)”之間的調(diào)用設(shè)計(jì)項(xiàng)目架構(gòu)。把相同功能封裝到一個(gè)或一組服務(wù)中。
4.4 微服務(wù)
服務(wù)的“微小化”
5 中間件
5.1 傳統(tǒng)開(kāi)發(fā)的組件
5.2 中間件
6 由淺入深了解/介紹分布式系統(tǒng)
6.1 分布式架構(gòu)實(shí)現(xiàn)技術(shù)
- Dubbo+Zookeeper
- SpringBoot+SpringCloud
6.2 工程
- 工程清單
- 工程之間關(guān)系
- 繼承
- 聚合
- 依賴
- 工程的作用
6.3 中間件
- 用到了哪些中間件
- 具體中間件和哪些功能相關(guān)
6.4 一個(gè)請(qǐng)求處理流程
瀏覽器→consumer→provider→中間件/provider→返回值
6.5 業(yè)務(wù)功能
子系統(tǒng)→模塊→子模塊→類(lèi)→……