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

Was this helpful?