Dubbo原理


provider:

1,spring在遇到dubbo的命名空間時,就會回調DubboNamespaceHandler;

2,用DubboBeanDefinitionPaser來解析bean

3,在ServiceConfig拿到提供服務的實際類的ref,通過ProxyFactory的getInvoker方法生成一個AbstractProxyInvoker對象,

4,通過serviceConfig將invoker對象解析爲url(registry://..........?export=URL.encode("dubbo://..."))

5,將url傳給Protocol擴展點,基於擴展點的Adaptive機制,通過協議頭識別,根據RegistoryProtocol.exprot方法生成exporter(dubbo://....),暴露給註冊中心;


register
1,調用registryProtocol.ref方法查詢到提供者的dubbo協議的url
2,調用dubboProtocol的refer方法得到提供者的引用實例;

3.註冊中心通過cluster將多個引用僞裝成一個引用


consumer
1,ReferenceConfig的init方法調用protocol的ref方法生成invoker;
2,通過ProxyFactory轉化invoker爲響應的ref,供接口使用

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章