grpc是后台服务通信最常用的rpc框架。使用grpc需要预先定义协议文件(proto),然后生成相应的接口代码才能使用。有时我们需要快速验证一些grpc的功能和特性,这时grpc的服务构建和验证就有些繁琐了。
因此,下面我将介绍如何在本地环境快速启动grpc的server和client,并能够方便地对程序及proto协议进行修改验证。
一、准备
golang版本
grpc需要保证golang版本为1.6以上
$ go version
安装grpc
$ go get -u google.golang.org/grpc
安装grpc protoc生成工具
点击https://github.com/google/protobuf/releases,选择合适的版本protocol buffer版本
- 解压zip包
- 将zip包下的bin目录添加进PATH
安装protoc的golang插件
$ go get -u github.com/golang/protobuf/protoc-gen-go
golang插件安装后默认会放到$GOPATH/bin目录下,将插件路径添加进PATH,如下:
$ export PATH=$PATH:$GOPATH/bin
二、启动demo
下载demo
在步骤一中我们通过 go get -u google.golang.org/grpc 下载的文件中已经包含了demo,对应目录为$GOPATH/src/google.golang.org/grpc/examples
构建demo
改变工作目录
$ cd $GOPATH/src/google.golang.org/grpc/examples/helloworld
该helloworld demo已经包含了protoc协议文件.proto以及预先生成的.pb.go接口文件,我们可以直接编译该demo。
编译并启动server端
$ go run greeter_server/main.go
打开一个新的terminal,启动客户端
$ go run greeter_client/main.go
如果一切顺利,可以看到如下输出
Greeting: Hello world
三、修改demo
修改proto接口
编辑helloworld/helloworld.proto文件(关于grpc的接口文件说明见此链接)
执行如下命令重新生成.pb.go文件覆盖原有的.pb.go接口文件
$ protoc -I helloworld/ helloworld/helloworld.proto --go_out=plugins=grpc:helloworld
修改server和client
直接编辑greeter_server/main.go或greeter_client/main.go即可
有疑问加站长微信联系(非本文作者)