1笨腥、Dubbo:一個(gè)分布式目尖、高性能馒吴、透明化的RPC服務(wù)框架(所謂的RPC框架就是不知道遠(yuǎn)程服務(wù)器的具體實(shí)現(xiàn),只知道遠(yuǎn)程服務(wù)器提供了什么功能,這里運(yùn)用了代理設(shè)計(jì)模式 )
2饮戳、作用:提供服務(wù)自動(dòng)注冊(cè)豪治、自動(dòng)發(fā)現(xiàn)等高效服務(wù)治理方案.
3、Dubbo架構(gòu)圖(重點(diǎn))
? ? 3.1 :Provider :提供者,服務(wù)發(fā)布方.
? ? 3.2:Consumer:消費(fèi)者, 調(diào)用服務(wù)方
????3.3:Container:Dubbo容器.依賴于Spring容器.
? ? 3.4:Registry:注冊(cè)中心.當(dāng)Container啟動(dòng)時(shí)把所有可以提供的服務(wù)列表上Registry中進(jìn)行注冊(cè).
? ??????3.4.1作用:告訴Consumer提供了什么服務(wù)和服務(wù)方在哪里.
? ? 3.5:Monitor:監(jiān)聽器
? ? 3.6:虛線都是異步訪問(wèn),實(shí)線都是同步訪問(wèn)
????3.7:(init 初始化)藍(lán)色虛線:在啟動(dòng)時(shí)完成的功能
? ? 3.8:紅色虛線(實(shí)線)都是程序運(yùn)行過(guò)程中執(zhí)行的功能
? ? 3.9:所有的角色都是可以在單獨(dú)的服務(wù)器上.所以必須遵守特定的協(xié)議.
4扯罐、運(yùn)行原理(重點(diǎn))
? ??4.0:(start)啟動(dòng)容器,相當(dāng)于在啟動(dòng)Dubbo的Provider
? ? 4.1:(registry)啟動(dòng)后會(huì)去注冊(cè)中心進(jìn)行注冊(cè)负拟,注冊(cè)所有可以提供的服務(wù)列表
? ? 4.2:(subscribe 訂閱)在Consumer啟動(dòng)后會(huì)去register中獲取服務(wù)列表和Provider的地址,進(jìn)行訂閱
? ? 4.3:(notify 通知)當(dāng)Provider有修改后歹河,注冊(cè)中心會(huì)把消息推送給Consumer
? ? ? ? 4.3.1:使用了觀察者設(shè)計(jì)模式(又叫發(fā)布/訂閱設(shè)計(jì)模式)齿椅。這里的Registry相當(dāng)于被觀察者,Consumer相當(dāng)于觀察者启泣,當(dāng)Consumer發(fā)現(xiàn)Registry發(fā)生了變化后涣脚,Consumer就會(huì)跟隨變化并發(fā)生一定的改變
????4.4:(invoke)根據(jù)獲取到的Provider地址,真實(shí)調(diào)用Provider中的功能
? ? ? ? 4.4.1:在Consumer方使用了代理設(shè)計(jì)模式寥茫,創(chuàng)建Provider方類的一個(gè)代理對(duì)象遣蚀,通過(guò)代理對(duì)象獲取Provider中的真實(shí)功能,起到保護(hù)Provider真實(shí)功能的作用
? ? 4.5:(count)Consumer和Provider每隔1分鐘就會(huì)向Monitor發(fā)送統(tǒng)計(jì)信息纱耻,統(tǒng)計(jì)信息包括訪問(wèn)次數(shù)芭梯、頻率等。