1. 程式人生 > >Spark 中的 RPC 的幾個類

Spark 中的 RPC 的幾個類

Spark 中 RPC 部分的涉及了幾個類,有點暈,在此記錄一下

1. RpcEndpoint: RPC的一個端點。給定了相應訊息的觸發函式。保證  `onStart`, `receive` and `onStop` 函式按順序觸發。

2. RpcEndpointRef: 一個遠端的 RpcEndpoint

3. RpcEnv: RPC的環境。 RpcEndpoint 需要用一個名字在 RpcEnv 進行註冊用於接收訊息。RpcEnv 將處理從 RpcEndpointRef 或遠端發來的訊息,然後傳送給相應的 RpcEndpoint 。

4. RpcAddress : 用主機+埠表示的一個 Rpc 地址。

5. Dispatcher: 訊息收發者, 負責把訊息路由給相應的 RPC 端點。

6. RpcEndpointVerifier : 驗證 RpcEnv 中某個 RpcEndpoint 是否存在的 RpcEndpoint。

7. Inbox : 為一個 RpcEndpoint 儲存訊息併發送給這個 RpcEndpoint 的信箱

8. NettyRpcHandler: 把收到的 Rpc 訊息分發給在 RpcEnv 註冊過的 RpcEndpoint(通過 Dispatcher)。會保持所有與之通訊的客戶端。此類 NettyRpcEnv.scala 中。

9. TransportServer:高效的、底層流服務。此類中會真正啟動 Netty 的服務端

10. TransportContext:包含了用於建立 TransportServer 和 TransportClientFactory的上下文,並且用於設定 Netty 的 Channel pipelines。

11. TransportRequestHandler: 註冊在 Netty channel 上的  handler。處理從客戶端發來的請求。

12. TransportResponseHandler: 註冊在 Netty channel 上的 handler。處理從服務端返回的訊息。