Go语言gRPC+gRPC Getway开发环境配置
Go语言gRPC+gRPC Getway开发环境配置 —————————————— 专注编程技术 |
01
需求分析
假定我们有一个项目需求,希望用RPC作为内部API的通讯,同时也想对外提供相应的Restful API,写两套会太繁琐。于是我们想到了Grpc以及Grpc Gateway,这就是我们所需要的:
02
开发环境配置
Grpc
Protoc Plugin
Protocol Buffers
Grpc-gateway
-
Grpc
-
强大的IDL,使用Protocol Buffers作为数据交换的格式,支持v2、v3(推荐v3) -
跨语言、跨平台,也就是Grpc支持多种平台和语言 -
支持HTTP2,双向传输、多路复用、认证等
下载安装:(windows和linux环境)
go get -u google.golang.org/grpc
Protoc Plugin
是一个编译器插件,我们需要用到该插件去生成相应的pb文件。
下载安装:(windows和linux环境)
go get -u github.com/golang/protobuf/protoc-gen-go
如果需要的话,则需要将生成的protoc-gen-go.exe(windows)或者protoc-gen-go(linux)二进制文件设置成全局命令参数,例如linux环境:
mv /usr/local/go/path/bin/protoc-gen-go /usr/local/go/bin/
Protocol Buffers
Protocol Buffers是Google推出的一种数据描述语言,支持多语言、多平台,它是一种二进制的格式,总得来说就是更小、更快、更简单、更灵活,目前分别有v2、v3的版本,我们推荐使用v3。
https://developers.google.com/protocol-buffers/docs/proto
https://developers.google.com/protocol-buffers/docs/proto3
下载安装:
(可以手动更改版本) :
wget https://github.com/google/protobuf/releases/download/v3.5.1/protobuf-all-3.5.1.zip
unzip protobuf-all-3.5.1.zip
cd protobuf-3.5.1/
./configure
make
make install
--version
error while loading shared libraries: libprotobuf.so.15: cannot open shared object file: No such file or directory :
则执行:ldconfig
windows环境:
https://github.com/google/protobuf/releases // 下载并编译、安装或者直接下载编译好额版本
go get github.com/golang/protobuf/proto // golang的protobuf库文件
网上的一个教程实例:
https://blog.csdn.net/qq_36025814/article/details/108538590
检查是否安装成功:protoc --version
protoc使用:
查看帮助文档:protoc --help
两个示例:(proto文件里的option go_package选项对pb文件生成路径有影响)
在proto文件上层目录运行命令:
protoc -I . -I./pbfile -I./proto --go_out=plugins=grpc:. --grpc-gateway_out=logtostderr=true:. ./proto/vss_record_manager.proto
在proto文件当前层运行命令:
protoc -I . --go_out=plugins=grpc:. --grpc-gateway_out=logtostderr=true:. stream.proto
Grpc-gateway
Grpc-gateway是protoc的一个插件。它读取gRPC服务定义,并生成一个反向代理服务器,将RESTful JSON API转换为gRPC。此服务器是根据gRPC定义中的自定义选项生成的。
下载安装:
go get -u github.com/grpc-ecosystem/grpc-gateway/protoc-gen-grpc-gateway
如果需要的话,将protoc-gen-grpc-gateway.exe(windows环境)或者protoc-gen-grpc-gateway(linux环境)二进制文件添加到全局变量。
--The End--
程序员编程微刊 专注编程技术 快和身边的小伙伴们一起关注吧~ |