天天看點

grpc入門

grpc無縫接入的資料序列化反序列化協定就是protobuf,是以先講解一下protobuf

安裝

參考文檔

目錄結構圖

grpc入門

helloword.proto檔案

執行指令生成protobuf檔案和grpc檔案

server.py代碼

client.py代碼

下載下傳protoc.exe

<code>https://github.com/protocolbuffers/protobuf/releases/tag/v3.19.1</code>

下載下傳後解壓,然後将解壓的protoc.exe放在GOPATH/bin目錄下(或者直接将protc.exe所在的bin目錄配置到環境變量當中去也可以)

下載下傳protoc-gen-go.exe

<code>go get github.com/golang/protobuf/protoc-gen-go</code>

上面下載下傳好後,會在GOPATH/bin下生成protoc-gen-go.exe

安裝protobuf

<code>go get google.golang.org/protobuf</code>

安裝grpc

<code>go get google.golang.org/grpc</code>

先切換到helloword.proto檔案所在的proto目錄下,執行如下指令

<code>protoc -I . helloword.proto --go_out=plugins=grpc:.</code>

注意:<code>go語言中隻生成一個檔案.pb.go, 也就隻有python中會生成兩個檔案,一個pb檔案,一個grpc檔案,其它的語言都生成一個檔案</code>

grpc入門

為了防止不一緻,将go下的helloword.proto檔案複制到python下重新生成protobuf檔案和grpc檔案

<code>python -m grpc_tools.protoc --python_out=. --grpc_python_out=. -I. helloworld.proto</code>

啟動go服務端,然後用python用戶端通路

啟動Python服務端,然後用go用戶端通路

grpc跨語言通信:so easy!

grpc的四種資料流

簡單模式 simple rpc

服務端資料流模式 server-side streaming rpc

用戶端資料流模式 client-side streaming rpc

雙向資料流模式 bidirectional steaming rpc

流模式的proto檔案定義

server.go

點選檢視代碼

client.go