golang rpc例項分析

2021-07-31 18:21:36 字數 1325 閱讀 9936

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...