For the complete documentation index, see llms.txt. This page is also available as Markdown.

1、快速开始

先决条件

Go Version

gRPC 要求go的版本是1.6或者更高

Install gRPC

使用下面的命令去安装gRPC

如果国内的网络环境不允许的话,可以点击 FAQ,查看相应的解决办法。

Install Protocol Buffers v3

安装用于生成gRPC服务代码的protoc编译器.最简单的版本就是从这个地址 https://github.com/protocolbuffers/protobuf/releases 下载预编译好的二进制包,选择对应的平台以及版本就可以了。

解压到自己特定的目录,然后配置环境变量。

接下来,为Go安装protoc插件。

这时,编译后的protoc插件会位于$GOPATH/bin目录下。可以到该目录下确认是否存在。

Download the example

前面我们下载的 gRPC go get google.golang.org/grpc,同样包含了gRPC的example,位于 $GOPATH/src/google.golang.org/grpc/examples 目录下。

Build the example

切换到 example 目录下

gRPC服务在 .proto 文件中定义,该文件用于生成相应的.pb.go文件。 .pb.go文件是通过使用protoc 编译器编译 .proto 文件生成的。

出于演示Demo的目的, helloworld.pb.go 文件已经被生成了 (通过编译 helloworld.proto ), 位于 $GOPATH/src/google.golang.org/grpc/examples/helloworld/helloworld.

helloworld.pb.go 文件包含两部分内容:

  • 生成client和server端的代码

  • 用于填充,序列化和检索HelloRequestHelloReply消息类型的代码

这是example的代码目录结构。

grpc-example

Try it

下面我们就来真枪实弹的跑一下代码看看。

进入到 example的目录 $GOPATH/src/google.golang.org/grpc/examples/helloworld,首先运行server端代码。

然后另外开启一个终端,运行client端代码。

此时如果运行没有出现问题的话。client 端会输出 Greeting: Hello world .

Update a gRPC service

接下来,如果我要更新应用程序添加新的接口给客户端调用,应该怎么做呢?gRPC服务默认是使用 protocol buffers 来定义的。可以点击什么是 gRPC?gRPC基础这两篇文章来 查看如何在 .proto 文件中定义一个服务。现在我们只需要之道,服务器和客户端都有一个SayHello RPC方法,该方法从客户端获取HelloRequest参数并从服务器返回HelloReply.它的定义是下面的样子.

位于 helloworld/helloworld.proto 文件中。

接下来,我们给service 再加上一个方法。

编辑helloworld/helloworld.proto 文件,添加一个 SayHelloAgain 的方法,它与 SayHello 方法接收同样的参数,有同样的返回值。

Generate gRPC code

接下来,我们更新我们的gRPC代码,让我们的应用采用新的方法定义。

这个命令会让helloworld.pb.go自动生成我们刚才的改变。

Update and run the application

刚才我们已经自动生成了 server 和 client 代码。但是我们仍然需要手动编写和调用这个新的方法。

Update the server

编辑 greeter_server/main.go 文件,添加下面的这样一个方法。

Update the client

编辑 greeter_client/main.go 在main函数中添加下面这样一段代码。

Run

接下来就可以运行了。开启两个终端分别运行 server和client.运行结果如下所示。

NEXT

Last updated