3 分钟阅读
https://grpc.io/docs/languages/go/quickstart/
本指南将通过一个简单的工作示例帮助您入门使用 Go 中的 gRPC。
有关安装说明,请参阅 Go 的 入门指南。
Protocol Buffers 编译器 protoc
,第 3 版。
有关安装说明,请参阅 Protocol Buffer 编译器安装。
Go 插件用于协议编译器:
使用以下命令安装 Go 的协议编译器插件
|
|
更新您的 PATH
,以便 protoc
编译器可以找到这些插件:
|
|
该示例代码是 grpc-go 仓库的一部分。
下载仓库的 zip 文件 并解压,或者克隆仓库:
|
|
切换到快速入门示例目录:
|
|
从 examples/helloworld
目录开始:
编译并执行服务端代码:
|
|
从另一个终端编译并执行客户端代码,并查看客户端输出:
|
|
恭喜!您刚刚使用 gRPC 运行了一个客户端-服务端(client-server )应用程序。
In this section you’ll update the application with an extra server method. The gRPC service is defined using protocol buffers. To learn more about how to define a service in a .proto
file see Basics tutorial. For now, all you need to know is that both the server and the client stub have a SayHello()
RPC method that takes a HelloRequest
parameter from the client and returns a HelloReply
from the server, and that the method is defined like this:
在本节中,您将使用额外的服务端方法更新应用程序。gRPC 服务使用Protocol Buffers定义。要了解有关如何在 .proto
文件中定义服务的更多信息,请参阅基础教程。目前,您只需要知道服务端和客户端存根都有一个 SayHello()
的 RPC 方法,该方法从客户端接收一个 HelloRequest
参数,并从服务端返回一个 HelloReply
,该方法定义如下:
|
|
打开 helloworld/helloworld.proto
文件,并添加一个新的 SayHelloAgain()
方法,使用相同的请求和响应类型:
|
|
记得保存文件!
在使用新的服务方法之前,您需要重新编译已更新的 .proto
文件。
仍然位于 examples/helloworld
目录中,运行以下命令:
|
|
这将重新生成 helloworld/helloworld.pb.go
和 helloworld/helloworld_grpc.pb.go
文件,其中包含:
HelloRequest
和 HelloReply
消息类型的代码。 您已经重新生成了服务端和客户端代码,但仍需要在该示例应用程序的人工编写部分中实现和调用新的方法。
打开 greeter_server/main.go
,并添加以下函数(这里应该叫做方法吧):
|
|
打开 greeter_client/main.go
,并在 main()
函数体的末尾添加以下代码:
|
|
记得保存您的更改。
像之前一样运行客户端和服务端。从 examples/helloworld
目录执行以下命令:
运行该服务端:
|
|
在另一个终端中运行该客户端。这次,在命令行参数中添加一个名称。
|
|
您将看到以下输出:
|
|