一文让你明白如何使用GRPC?

2024-05-12  本文已影响0人  左诗右码

GRPC(gRPC Remote Procedure Call 远程过程调用)

安装 protobuf

官方安装地址


brew install protobuf

这里指定安装 3.17.0 版本


PROTOC_ZIP=protoc-3.17.0-osx-x86_64.zip
curl -OL https://github.com/protocolbuffers/protobuf/releases/download/v3.17.0/$PROTOC_ZIP
sudo unzip -o $PROTOC_ZIP -d /usr/local bin/protoc
sudo unzip -o $PROTOC_ZIP -d /usr/local 'include/*'
rm -f $PROTOC_ZIP

或者使用如下方式安装

这里示范的是安装 Linux 环境下的 protobuf


# 下载编译好的二进制包
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.17.0-rc1/protoc-3.17.0-rc-1-linux-x86_64.zip

# 创建文件夹并解压缩到指定文件夹中
mkdir protoc && tar -xzvf protoc-3.17.0-rc-1-linux-x86_64.zip -C protoc

# 将解压后的文件移动到 /usr/local 文件夹下
sudo mv protoc /usr/local/protoc

# 创建软连接,方便在任意目录下使用 protoc 命令
ln -s /usr/local/protoc/bin/protoc /usr/local/bin/protoc

这里安装的是 3.19.1 版本


# 下载安装包
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.1/protobuf-all-3.19.1.zip

# 解压缩
unzip protobuf-all-3.19.1.zip && cd protobuf-3.19.1

./configure

make

make install


# 根据你自己的系统下载对应的源码包 (比如我这里使用的是 mac book,我就要下载 osx 压缩包)
cd ~/go-tools && wget https://github.com/protocolbuffers/protobuf/releases/download/v3.19.1/protoc-3.19.1-osx-x86_64.zip

# 解压缩
unzip protoc-3.19.1-osx-x86_64.zip

# 编辑配置文件
vim ~/.zshrc

# 写入以下配置信息
export PATH="/Users/pudongping/go-tools/protoc-3.19.1-osx-x86_64/bin:$PATH"

source ~/.zshrc

# protoc 是 Protobuf 的编译器,其主要功能是用于编译 .proto 文件
protoc --version

如果出现 protoc: error while loading shared libraries: libprotobuf.so.15: cannot open shared object file: No such file or directory 那么则需要在命令行中执行 ldconfig 命令后,再次运行即可成功。

安装 protoc 插件

仅安装 protoc 编译器是不够的,针对不同的语言,还需要安装运行时的 protoc 插件,而对应 Go 语言的是 protoc-gen-go 插件。

可以执行以下命令进行安装,但是不推荐,因为 protoc-gen-go 是需要与 proto 软件包版本相匹配的,必须要锁定版本号

# 安装的二进制文件在 `$GOPATH/bin` 目录下
# 安装 protobuf 3.17.0 版本之后直接执行 go get -u github.com/golang/protobuf/protoc-gen-go 命令后,
# 貌似安装的 protoc-gen-go 版本是 v1.27.1,但是指定 protoc-gen-go@v1.27.1 貌似又找不到 v1.27.1 的版本,不知为何,暂且记录下。
# 在项目根目录下执行
go get -u github.com/golang/protobuf/protoc-gen-go@v1.3.3

推荐的安装方式如下:

GIT_TAG="v1.3.3"
go get -d -u github.com/golang/protobuf/protoc-gen-go
git -C "$(go env GOPATH)"/src/github.com/golang/protobuf checkout $GIT_TAG
go install github.com/golang/protobuf/protoc-gen-go

然后还可以将其移动到 bin 目录下

mv $GOPATH/bin/protoc-gen-go /usr/local/go/bin/

安装 grpc-go 库

grpc-go 包含了 Go 的 grpc 库,我们可以使用如下方式安装

go get -u google.golang.org/grpc@v1.29.1

如果使用以上方式安装,发现无法安装(可能会被墙掉了),我们可以使用如下方式手动安装

git clone https://github.com/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
git clone https://github.com/golang/net.git $GOPATH/src/golang.org/x/net
git clone https://github.com/golang/text.git $GOPATH/src/golang.org/x/text
git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto

cd $GOPATH/src/
go install google.golang.org/grpc

生成 proto 文件(生成接口库)

# 加载 protoc-gen-go 插件 生成 grpc 的 go 服务端/客户端
# 注意:必须要先安装好 protoc-gen-go 插件

# 这里将 .proto 文件写到 proto 目录,执行此命令后将会把对应的 .pb.go 文件也会生成到 proto 目录
protoc --go_out=plugins=grpc:. ./proto/*.proto
上一篇下一篇

猜你喜欢

热点阅读