您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關Dubbo重要概念分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
1.proxyFactory:就是為了獲取一個接口的代理類,例如獲取一個遠程接口的代理。
它有2個方法,代表2個作用
a.getInvoker:針對server端,將服務對象,如DemoServiceImpl包裝成一個Invoker對象。
b.getProxy :針對client端,創建接口的代理對象,例如DemoService的接口。
2.Wrapper:它類似spring的BeanWrapper,它就是包裝了一個接口或一個類,可以通過wrapper對實例對象進行賦值 取值以及制定方法的調用。
3.Invoker:它是一個可執行的對象,能夠根據方法的名稱、參數得到相應的執行結果。
它里面有一個很重要的方法 Result invoke(Invocation invocation),
Invocation是包含了需要執行的方法和參數等重要信息,目前它只有2個實現類RpcInvocation MockInvocation
它有3種類型的Invoker
1.本地執行類的Invoker
server端:要執行 demoService.sayHello,就通過InjvmExporter來進行反射執行demoService.sayHello就可以了。
2.遠程通信類的Invoker
client端:要執行 demoService.sayHello,它封裝了DubboInvoker進行遠程通信,發送要執行的接口給server端。
server端:采用了AbstractProxyInvoker執行了DemoServiceImpl.sayHello,然后將執行結果返回發送給client.
3.多個遠程通信執行類的Invoker聚合成集群版的Invoker
client端:要執行 demoService.sayHello,就要通過AbstractClusterInvoker來進行負載均衡,DubboInvoker進行遠程通信,發送要執行的接口給server端。
server端:采用了AbstractProxyInvoker執行了DemoServiceImpl.sayHello,然后將執行結果返回發送給client.
4.Protocol
1.export:暴露遠程服務(用于服務端),就是將proxyFactory.getInvoker創建的代理類 invoker對象,通過協議暴露給外部。
2.refer:引用遠程服務(用于客戶端), 通過proxyFactory.getProxy來創建遠程的動態代理類,例如DemoService的遠程動態接口。
5.exporter:維護invoder的生命周期。
6.exchanger:信息交換層,封裝請求響應模式,同步轉異步。
7.transporter:網絡傳輸層,用來抽象netty和mina的統一接口。
8.Directory:目錄服務
StaticDirectory:靜態目錄服務,他的Invoker是固定的。
RegistryDirectory:注冊目錄服務,他的Invoker集合數據來源于zk注冊中心的,他實現了NotifyListener接口,并且實現回調notify(List<URL> urls),
整個過程有一個重要的map變量,methodInvokerMap(它是數據的來源;同時也是notify的重要操作對象,重點是寫操作。)
上述就是小編為大家分享的Dubbo重要概念分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。