golang原生的RPC實現

2022-09-23 05:27:03 字數 1102 閱讀 3436

package main

import (

"math"

"net"

"net/http"

"net/rpc"

)//math calculate

type mathutil struct

//該方法對外暴露,提供計算圓形面積的服務

func (mu *mathutil)calculatecirclearea(req float32,resp *float32)error

func main()

//3.通過該函式把mathutil中提供的服務註冊到http協議上,方便呼叫者可以利用http的方式進行資料傳遞

rpc.handlehttp()

//4.在特定的埠進行監聽

listen,err := net.listen("tcp",":8081")

if err!=nil

http.serve(listen,nil)

}

package main

import (

"fmt"

"net/rpc"

)func main()

var req float32 //如果req引數為多個引數,可以自定義結構體,對引數進行封裝

req = 3

var resp *float32

//同步的方式進行呼叫

err = client.call("mathutil.calculatecirclearea",req,&resp)

if err != nil

fmt.println(*resp)

//非同步呼叫

var respsync *float32

synccall := client.go("mathutil.calculatecirclearea",req,&respsync,nil)

replaydone :=

fmt.println(replaydone)

fmt.println(*respsync)

}

小主,辛苦啦!文章棒棒噠,賞杯咖啡吧...

golang的rpc選項模式一點理解

在學習rpc小冊子時遇到了server端傳參用了選項模式 前提 要記住在go語言裡函式也是一種變數型別,和自定義的其它型別一樣,也可以作為值傳遞,也可以當作結果賦值 如下是 ,註釋是自己對這塊的理解,希望對你能有些許幫助 serveroptions 結構體型別 type serveroptions ...

我眼中的 RPC

目錄rpc 是一種框架或者說一種架構,主要目標就是讓遠端服務呼叫更簡單 透明,呼叫遠端就像呼叫本地一樣。 rpc remote procedure call 遠端過程呼叫,它是一種通過網路從遠端計算機程式上請求服務,而不需要了解底層網路技術的協議。rpc協議假定某些傳輸協議的存在,如tcp或udp,...

Swoole RPC 的實現

目錄 小結這是關於 swoole 學習的第七篇文章 swoole rpc 的實現。 哈哈哈 還有讀者說 有一起學習的組織群嗎,可以在裡面進行疑難答疑? 還有出版社找我寫書的 他們也真是放心,我自己肚子裡幾滴墨水還是知道的,目前肯定是不行,以後嘛,再說。 我真誠的建議,做技術的應該自己多總結總結,將自...