1 gRPC使用例子

2021-09-26 18:15:42 字數 2636 閱讀 2038

grpc使用例子說明

syntax="proto3";

service helloservice

message hellorequest

message helloresponse

protoc --go_out=plugins=grpc:$

$

生成的核心**如下

client**

//根據helloservice生成的客戶端介面

type helloserviceclient inte***ce

//helloservice客戶端,實現了helloserviceclient介面

type helloserviceclient struct

//建立乙個helloservice客戶端物件

func

newhelloserviceclient

(cc *grpc.clientconn) helloserviceclient

}//實現helloserviceclient介面的sayhello,是呼叫遠端服務sayhello方法的具體實現

func

(c *helloserviceclient)

sayhello

(ctx context.context, in *hellorequest, opts ...grpc.calloption)

(*helloresponse,

error

)return out,

nil}

server**

// helloserviceserver is the server api for helloservice service.

//根據helloservice服務生成的server介面

type helloserviceserver inte***ce

//註冊helloserviceserver

func

registerhelloserviceserver

(s *grpc.server, srv helloserviceserver)

//helloserviceserver介面描述

var _helloservice_servicedesc = grpc.servicedesc,}

, streams:

grpc.streamdesc

, metadata:

"hello.proto",}

//sayhello方法處理器

func

_helloservice_sayhello_handler

(srv inte***ce

, ctx context.context, dec func

(inte***ce

)error

, interceptor grpc.unaryserverinterceptor)

(inte***ce

,error

)if interceptor ==

nil info :=

&grpc.unaryserverinfo

handler :=

func

(ctx context.context, req inte***ce)(

inte***ce

,error

)return

interceptor

(ctx, in, info, handler)

}

//實現介面helloserviceserver

type server struct

func

(s *server)

sayhello

(ctx context.context,request *hello.hellorequest)

(*hello.helloresponse,

error),

nil}

func

main()

註冊服務

s:=grpc.

newserver()

var service server

hello.

registerhelloserviceserver

(s,&service)

//啟動服務

if err=s.

serve

(listener)

;err!=

nil}

func

main()

defer conn.

close()

cli:=hello.

newhelloserviceclient

(conn)

res,err:=cli.

sayhello

(context.

background()

,&hello.hellorequest

)if err!=

nil fmt.

println

(res)

}

grpc 服務呼叫例子

1.建立乙個hello.proto 其實就是定義乙個服務,然後後面需要實現它的介面 syntax proto3 path 表示生成的go檔案的存放位址,會自動生成目錄的。name 表示生成的go檔案所屬的包名 option go package hello package hello service...

gRPC的簡單Go例子

grpc是乙個高效能 通用的開源rpc框架,其由google主要面向移動應用開發並基於http 2協議標準而設計,基於protobuf protocol buffers 序列化協議開發,且支援眾多開發語言。grpc提供了一種簡單的方法來精確地定義服務和為ios android和後台支援服務自動生成可...

gRPC使用簡介

grpc是一款語言中立 平台中立 開源的遠端過程呼叫 rpc 系統。在grpc裡,客戶端應用程式可以像呼叫本地物件一樣直接呼叫另一台不同機器上,服務端應用的方法,使得你能夠更容易的建立分布式應用和服務。與許多rpc系統類似,grpc也是基於以下理念 定義乙個服務,指定其能夠被遠端呼叫的方法 包括引數...