grpc無縫接入的資料序列化反序列化協定就是protobuf,是以先講解一下protobuf
安裝
參考文檔
目錄結構圖

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>
為了防止不一緻,将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