在gRPC里,客戶端可以像呼叫本地方法一樣直接呼叫其他機器上的服務端應用程式的方法,幫助你更容易創建分布式應用程式和服務,與許多RPC系統一樣,gRPC是基于定義一個服務,指定一個可以遠程呼叫的帶有引數和回傳型別的的方法,在服務端程式中實作這個介面并且運行gRPC服務處理客戶端呼叫,在客戶端,有一個stub提供和服務端相同的方法,
在安裝目錄下
在你的專案目錄下執行以下命令,獲取 gRPC 作為專案依賴,
go get google.golang.org/grpc@latest
安裝Protocol Buffers v3
裝用于生成gRPC服務代碼的協議編譯器,最簡單的方法是從下面的鏈接:https://github.com/google/protobuf/releases下載適合你平臺的預編譯好的二進制檔案
我們需要將下載得到的可執行檔案protoc所在的 bin 目錄加到我們電腦的環境變數中,
安裝GO語言插件
go install google.golang.org/protobuf/cmd/protoc-gen-go
安裝GRPC插件
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
安裝完后執行如下命令,查看是否完成安裝


Grpc的開發步聚
1.撰寫protobuf

用如下命令生成GO 檔案
protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative he
lloworld.proto
生成后的檔案如下:

2.撰寫服務端檔案server.go
package main
import (
"OldPacketTest/grpc_test/proto"
"context"
"google.golang.org/grpc"
"net"
)
type Server struct {
proto.UnimplementedGreeterServerServer
}
func (s *Server) SayHello(ctx context.Context, req *proto.HelloRequest) (*proto.HelloReply, error) {
return &proto.HelloReply{
Message: "hello " + req.Name,
}, nil
}
func main() {
g := grpc.NewServer()
proto.RegisterGreeterServerServer(g, &Server{})
lis, err := net.Listen("tcp", "0.0.0.0:8081")
if err != nil {
panic("failed to listen:" + err.Error())
}
err = g.Serve(lis)
if err != nil {
panic("failed to start grpc:" + err.Error())
}
}
客戶端代碼如下

3.啟動服務,先啟動服務端,再啟動客戶端
服務端啟動后如下:

啟動客戶端

這時候就可以看到回應的結果了,這時候一個完整的GRPC服務就完成了
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/543665.html
標籤:其他
