rpc(remote procedure call protocol)——遠端過程呼叫協議,它是一種通過網路從遠端電腦程式上請求服務,而不需要了解底層網路技術的協議。
簡單來說,就是跟遠端訪問或者web請求差不多,都是乙個client向遠端伺服器請求服務返回結果,但是web請求使用的網路協議是http高層協議,而rpc所使用的協議多為tcp,是網路層協議,減少了資訊的包裝,加快了處理速度。
golang本身有rpc包,可以方便的使用,來構建自己的rpc服務,下邊是乙個簡單是例項,可以加深我們的理解
它的工作流程如下圖:
golang 使用 rpc的例子如下:
伺服器端**:
這裡暴露了乙個rpc介面,乙個http介面
fmt.println("正在監聽1234埠")
客戶端**:
package main
import (
"fmt"
"net/rpc"
) func main()
var reply int
err = client.call("watcher.getinfo", 1, &reply)
if err != nil
fmt.println("遠端服務返回結果:", reply)
}伺服器端**執行截圖
客戶端**執行截圖
http網頁執行截圖:
GoLang Rpc程式設計
rpc remote procedure call,遠端過程呼叫 是一種通過網路從遠端電腦程式上請求服 務,而不需要了解底層網路細節的應用程式通訊協議。rpc協議構建於tcp或udp,或者是 http 之上,允許開發者直接呼叫另一台計算機上的程式,而開發者無需額外地為這個呼叫過程編寫網 絡通訊相關 ...
golang rpc的兩種呼叫方法
golang的rpc有兩種方法進行呼叫,一種是rpc例子中給的 12 log.println reply 另一種是使用newserver 這種是當rpc已經註冊的時候就要使用了另外一種了。即乙個server只能在defaultrpc中註冊一種型別。當server使用rpc.newserver的時候,...
8 2 5 例項分析
下面對以上 作簡要說明 1 按照常規步驟建立並拷貝 matrix rect 的matrx var mymatrix matrix matrix rect.transform.matrix 此處應該注意大小寫,transform 內部並不存在 matrix 物件。matrix 是矩陣類的名字,matr...