前置概念在學(xué)習(xí)dubbo前,需要先了解SOA和RPC這兩個(gè)概念。 SOA1.英文名稱(Service Oriented Ambiguity) 2.中文名稱:面向服務(wù)架構(gòu) 2.1 有一個(gè)專門提供服務(wù)單元. 2.2 其他所有單元都調(diào)用這個(gè)服務(wù). 3.SOA定位: 3.1 如何設(shè)計(jì)項(xiàng)目,讓開發(fā)時(shí)更有效率. 3.2 SOA是一種思想 4.之前項(xiàng)目架構(gòu)設(shè)計(jì) 4.1 在公司項(xiàng)目不允許所有項(xiàng)目都訪問數(shù)據(jù)庫. 4.2 開發(fā)時(shí),數(shù)據(jù)庫訪問層代碼可能出現(xiàn)冗余 ? ? 5.使用SOA架構(gòu) 5.1 專門訪問數(shù)據(jù)庫服務(wù)(項(xiàng)目). 5.2 開發(fā)時(shí)可以實(shí)現(xiàn),數(shù)據(jù)訪問控制和代碼復(fù)用. ? ? 6.實(shí)現(xiàn)SOA架構(gòu)時(shí),常用服務(wù). 6.1 Dubbo 做為服務(wù). 6.2 WebService 做為服務(wù). 6.3 Dubbox 做為服務(wù). 6.4 服務(wù)方就是web項(xiàng)目,調(diào)用web項(xiàng)目的控制器. 6.4.1 使用HttpClient可以調(diào)用其他項(xiàng)目的控制器. RPC1.英文名稱(Remote Procedure Call Protocol) 2.中文名稱:遠(yuǎn)程過程調(diào)用協(xié)議 3.RPC解析:客戶端(A)通過互聯(lián)網(wǎng)調(diào)用遠(yuǎn)程服務(wù)器,不知道遠(yuǎn)程服務(wù)器具體實(shí)現(xiàn),只知道遠(yuǎn)程服務(wù)器提供了什么功能. 4.RPC最大優(yōu)點(diǎn): 4.1 數(shù)據(jù)安全性. ? Dubbo簡介1.Dubbo:一個(gè)分布式、高性能、透明化的RPC服務(wù)框架 2.作用:提供服務(wù)自動(dòng)注冊、自動(dòng)發(fā)現(xiàn)等高效服務(wù)治理方案. 3.Dubbo架構(gòu)圖 3.1 Provider :提供者,服務(wù)發(fā)布方. 3.2 Consumer:消費(fèi)者, 調(diào)用服務(wù)方 3.3 Container:Dubbo容器.依賴于Spring容器. 3.4 Registry: 注冊中心.當(dāng)Container啟動(dòng)時(shí)把所有可以提供的服務(wù)列表上Registry中進(jìn)行注冊. 3.4.1 作用:告訴Consumer提供了什么服務(wù)和服務(wù)方在哪里. 3.5 Monitor:監(jiān)聽器 3.6 虛線都是異步訪問,實(shí)線都是同步訪問 3.7 藍(lán)色虛線:在啟動(dòng)時(shí)完成的功能 3.8 紅色虛線(實(shí)線)都是程序運(yùn)行過程中執(zhí)行的功能 3.9 所有的角色都是可以在單獨(dú)的服務(wù)器上.所以必須遵守特定的協(xié)議. ? ? 4.運(yùn)行原理: 4.0 啟動(dòng)容器,相當(dāng)于在啟動(dòng)Dubbo的Provider 4.1 啟動(dòng)后會(huì)去注冊中心進(jìn)行注冊.注冊所有可以提供的服務(wù)列表 4.2 在Consumer啟動(dòng)后會(huì)去Registry中獲取服務(wù)列表和Provider的地址.進(jìn)行訂閱. 4.3 當(dāng)Provider有修改后,注冊中心會(huì)把消息推送給Consummer 4.3.1 使用了觀察者設(shè)計(jì)模式(又叫發(fā)布/訂閱設(shè)計(jì)模式) 4.4 根據(jù)獲取到的Provider地址,真實(shí)調(diào)用Provider中功能. 4.4.1 在Consumer方使用了代理設(shè)計(jì)模式.創(chuàng)建一個(gè)Provider方類的一個(gè)代理對象.通過代理對象獲取Provider中真實(shí)功能,起到保護(hù)Provider真實(shí)功能的作用. 4.5 Consumer和Provider每隔1分鐘向Monitor發(fā)送統(tǒng)計(jì)信息,統(tǒng)計(jì)信息包含,訪問次數(shù),頻率等. 來源:http://www./content-4-62501.html |
|