1. 程式人生 > >.Net Rpc服務呼叫記錄1

.Net Rpc服務呼叫記錄1

最近,研究了Rpc呼叫,照貓畫虎的自己也寫了一版。整個呼叫過程如下:

1. 客戶端呼叫過程如下: 

2.服務端如下:

 

上述是兩端涉及到的各個元件已經之間的呼叫關係。各元件職責為:

1.IProxy: 呼叫IServiceFinder 查詢可用地址;構建RequestMessage; 呼叫IRemoteServiceInvoker發起遠端呼叫

2. IServiceFinder: 呼叫服務管理器查詢可用服務地址;呼叫地址篩選器選定地址;

3.IRemoteServiceInvoker: 由於是非同步發起,此處首先註冊回撥鉤子;呼叫IMessageSender進行訊息傳送;

4.IMessageSender: 負責編碼訊息,建立通道,傳送訊息;

5.Server:  服務寄宿;服務註冊;啟動埠並監聽;

6.IMessageReceiver: 註冊接收到訊息時的回撥;

7.IServiceExecutor: 例項化服務;呼叫服務方法;呼叫Sender,將結果返回給客戶端;

以上是整理邏輯的分解,後續將分別解析客戶端和服務端的細節和程式碼。非常感謝!