1、Dubbo:一個分布式、高性能、透明化的RPC服務(wù)框架(所謂的RPC框架就是不知道遠程服務(wù)器的具體實現(xiàn),只知道遠程服務(wù)器提供了什么功能,這里運用了代理設(shè)計模式 )
2、作用:提供服務(wù)自動注冊、自動發(fā)現(xiàn)等高效服務(wù)治理方案.

3、Dubbo架構(gòu)圖(重點)
? ? 3.1 :Provider :提供者,服務(wù)發(fā)布方.
? ? 3.2:Consumer:消費者, 調(diào)用服務(wù)方
????3.3:Container:Dubbo容器.依賴于Spring容器.
? ? 3.4:Registry:注冊中心.當Container啟動時把所有可以提供的服務(wù)列表上Registry中進行注冊.
? ??????3.4.1作用:告訴Consumer提供了什么服務(wù)和服務(wù)方在哪里.
? ? 3.5:Monitor:監(jiān)聽器
? ? 3.6:虛線都是異步訪問,實線都是同步訪問
????3.7:(init 初始化)藍色虛線:在啟動時完成的功能
? ? 3.8:紅色虛線(實線)都是程序運行過程中執(zhí)行的功能
? ? 3.9:所有的角色都是可以在單獨的服務(wù)器上.所以必須遵守特定的協(xié)議.
4、運行原理(重點)
? ??4.0:(start)啟動容器,相當于在啟動Dubbo的Provider
? ? 4.1:(registry)啟動后會去注冊中心進行注冊,注冊所有可以提供的服務(wù)列表
? ? 4.2:(subscribe 訂閱)在Consumer啟動后會去register中獲取服務(wù)列表和Provider的地址,進行訂閱
? ? 4.3:(notify 通知)當Provider有修改后,注冊中心會把消息推送給Consumer
? ? ? ? 4.3.1:使用了觀察者設(shè)計模式(又叫發(fā)布/訂閱設(shè)計模式)。這里的Registry相當于被觀察者,Consumer相當于觀察者,當Consumer發(fā)現(xiàn)Registry發(fā)生了變化后,Consumer就會跟隨變化并發(fā)生一定的改變
????4.4:(invoke)根據(jù)獲取到的Provider地址,真實調(diào)用Provider中的功能
? ? ? ? 4.4.1:在Consumer方使用了代理設(shè)計模式,創(chuàng)建Provider方類的一個代理對象,通過代理對象獲取Provider中的真實功能,起到保護Provider真實功能的作用
? ? 4.5:(count)Consumer和Provider每隔1分鐘就會向Monitor發(fā)送統(tǒng)計信息,統(tǒng)計信息包括訪問次數(shù)、頻率等。