- 中臺落地手記:業務服務化與數據資產化
- 張亮
- 287字
- 2021-09-08 16:35:27
3.1.2 核心流程介紹
1.服務發布
將服務提供者的實現類(例如ProductServiceImpl)及其配置屬性參數包裝成ServiceBean代理類,ServiceConfig類拿到代理類及拼接完成的參數URL信息后,再通過ProxyFactory工廠類的getInvoker函數生成ProductServiceImpl的AbstractProxyInvoker實例,以完成服務到Invoker的轉化。
協議處理類(例如DubboProtocol)的export函數將Invoker類轉換成Exporter類,并創建RPC Server端實例(例如NettyServer)、監聽指定端口、接收客戶端的請求。
Registry類型的Invoker注冊服務的名字和URL參數信息到注冊中心。
2.服務消費
ReferenceBean的getObject函數產生服務消費者及其配置信息的代理類,ReferenceConfig在createProxy函數中連接注冊中心,發現遠程服務并通過Protocol的refer函數把服務提供者實例轉化成Invoker。
在Invoker中利用Proxyfactory函數剝離出服務提供者的代理信息、創建RPC客戶端實例、連接服務提供端、接收調用返回的結果。