1. 程式人生 > >rpc的go 和 call

rpc的go 和 call

在 RPC 客戶端,Go 的 net/rpc 包提供了便利的 rpc.Dial() 和 rpc.DialHTTP() 方法來與指定的 RPC 服務端建立連線。在建立連線之後,Go 的 net/rpc 包允許我們使用同步或者非同步的方式接收 RPC 服務端的處理結果。呼叫 RPC 客戶端的 Call() 方法則進行同步處理,這時候客戶端程式按順序執行,只有接收完 RPC 服務端的處理結果之後才可以繼續執行後面的程式。當呼叫 RPC 客戶端的 Go() 方法時,則可以進行非同步處理,RPC 客戶端程式無需等待服務端的結果即可執行後面的程式,而當接收到 RPC 服務端的處理結果時,再對其進行相應的處理。無論是呼叫 RPC 客戶端的 Call() 或者是 Go() 方法,都必須指定要呼叫的服務及其方法名稱,以及一個客戶端傳入引數的引用,還有一個用於接收處理結果引數的指標。