grpc.(go Grpc初体验)
在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 helloworld.proto
生成后的文件如下:2.编写服务端文件server.go
package mainimport ( "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服务就完成了
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!