Go中gRPC的基础教程介绍。
基础知识教程
Go中gRPC的基础教程介绍。
本教程为Go程序员提供了关于使用gRPC的基本介绍。
通过学习这个例子,你将学会如何。
在一个.proto文件中定义一个服务。
使用协议缓冲区编译器生成服务器和客户端代码。
使用Go gRPC API为你的服务编写一个简单的客户端和服务器。
它假定你已经阅读了gRPC的介绍,并且熟悉协议缓冲区。请注意,本教程中的例子使用了协议缓冲区语言的proto3版本:你可以在proto3语言指南和Go生成的代码指南中找到更多信息。
为什么使用gRPC?
我们的例子是一个简单的路线映射应用,让客户获得他们路线上的特征信息,创建他们路线的摘要,并与服务器和其他客户交换路线信息,如交通更新。
有了gRPC,我们可以在一个.proto文件中定义一次我们的服务,并以gRPC支持的任何语言生成客户端和服务器,而这些客户端和服务器又可以在从大型数据中心内的服务器到你自己的平板电脑等环境中运行--不同语言和环境之间的所有复杂通信都由gRPC为你处理。我们还可以获得使用协议缓冲区的所有优势,包括高效的序列化、简单的IDL和方便的界面更新。
-
Download the repo as a zip file and unzip it, or clone the repo:
$ git clone -b v1.49.0 --depth 1 https://github.com/grpc/grpc-go
-
Change to the example directory:
$ cd grpc-go/examples/route_guide
生成客户端和服务器代码
接下来我们需要从我们的.proto服务定义中生成gRPC客户端和服务器接口。我们使用协议缓冲区编译器protoc和一个特殊的gRPC Go插件来做这件事。这与我们在快速入门中的做法类似。
在examples/route_guide目录下,运行以下命令。
$ protoc --go_out=. --go_opt=paths=source_relative / --go-grpc_out=. --go-grpc_out=.-go-grpc_opt=paths=source_relative /-go-grpc_opt=paths=source_relative。 routeguide/route_guide.proto
运行这个命令会在routeguide目录下生成以下文件。
route_guide.pb.go,它包含所有的协议缓冲区代码,以填充、序列化和检索请求和响应消息类型。
route_guide_grpc.pb.go,其中包含以下内容。
一个接口类型(或存根),供客户调用RouteGuide服务中定义的方法。
一个供服务器实现的接口类型,也包括RouteGuide服务中定义的方法。