所謂服務暴露最終做的事情:
綁定網絡端口,開啟serversokect服務以接收外部請求
服務暴露時序圖
本地暴露
遠程暴露
整體總結
dubbo服務提供者暴露服務的主過程:
首先 ServiceConfig 類拿到對外提供服務的實際類 ref(如:HelloWorldImpl),然后通過 ProxyFactory 類的 getInvoker 方法使用 ref 生成一個 AbstractProxyInvoker 實例,到這一步就完成具體服務到 Invoker 的轉化。
接下來就是 Invoker 轉換到 Exporter 的過程
Dubbo 處理服務暴露的關鍵就在 Invoker 轉換到 Exporter 的過程
服務發布過程的一些動作
- 暴露本地服務
- 暴露遠程服務
- 啟動netty
- 連接zookeeper
- 到zookeeper注冊
- 監聽zookeeper
一句話概括服務暴露:
Service->Invoker->Exporter