本文主要介绍gRPC开发环境搭建过程

操作系统及Go版本

$ cat /etc/debian_version 
10.3
$ go version
go version go1.17.2 linux/amd64

安装protoc

$ mkdir -p ~/Downloads/

# 替换这里的链接为最新版本链接,文件名同样替换
$ wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.1/protoc-3.19.1-linux-x86_64.zip -O ~/Downloads/protoc-3.6.1-linux-x86_64.zip
$ mkdir -p /tmp/protoc
$ unzip ~/Downloads/protoc-3.19.1-linux-x86_64.zip -d /tmp/protoc
$ sudo cp /tmp/protoc/bin/protoc /usr/local/bin/
$ sudo cp -r /tmp/protoc/include/google /usr/local/include  
$ sudo chmod -R 755 /usr/local/include/google

安装 protobuf Plugin 和 gRPC Plugin

设置 go module 代理

go env -w GOPROXY="https://goproxy.io,direct"

安装 protoc-gen-go

go install google.golang.org/protobuf/cmd/protoc-gen-go@latest

安装 protoc-gen-go-grpc

go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest

测试

创建 proto 文件

$ mkdir -p grpc-test/proto
$ touch grpc-test/proto/echo.proto
$ cd grpc-test

grpc-test/proto/echo.proto

syntax="proto3";

package echo;

option go_package="rpc/echo";

message EchoPar {
    string msg = 1;
}

message EchoReply {
    string msg = 1;
}

service echo {
    rpc Echo(EchoPar) returns ( EchoReply) {}
}

生成gRPC代码

$ protoc --go_out=. --go-grpc_out=. proto/echo.proto

此时目录下已生成相关 go 语言文件