gRPC学习之二:GO的gRPC开发环境准备
六六六一啊 2021-08-26 11:56:02 2021-08-26 132 0
欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
gRPC学习系列文章链接
本篇概览
- 本文《gRPC学习》系列的第二篇,前文在CentOS7环境装好了GO,接下来要把gRPC开发环境准备好,总的来说一共三步:
安装protoc
- protoc是编译工具,安装方式是下载二进制文件,直接复制粘贴以下命令执行即可:
mkdir -p $GOPATH/bin \&& mkdir ~/temp-protoc-download \&& wget https://github.com/protocolbuffers/protobuf/releases/download/v3.14.0/protoc-3.14.0-linux-x86_64.zip -O ~/temp-protoc-download/protoc.zip \&& cd ~/temp-protoc-download \&& unzip protoc.zip \&& cp ./bin/protoc $GOPATH/bin/ \&& cd ~/ \&& rm -rf ~/temp-protoc-download
- 执行protoc --version检查protoc安装是否成功:
[golang@centos7 ~]$ protoc --versionlibprotoc 3.14.0
安装protoc-gen-go和grpc包遇到的问题
- 实际证明,用go get命令安装protoc-gen-go和grpc包的时候经常提示网络错误,于是我写了个shell脚本,将protoc-gen-go和grpc包的源码从GitHub下载下来,在本地编译构建,达到go get安装相同的效果;
- 使用git clone命令下载源码比较耗时(文件数量太多),因此我写的脚本是下载对应的源码包(zip文件),再解压,和git clone效果相同但是耗时减少很多;
- 因此,接下来的操作是一个脚本完成protoc-gen-go和grpc包的安装;
安装protoc-gen-go和grpc包
- 执行以下命令即可完成protoc-gen-go和grpc包的安装:
curl -o install-grpc.sh \https://raw.githubusercontent.com/zq2599/blog_demos/master/files/install-grpc.sh \&& chmod a+x ./install-grpc.sh \&& ./install-grpc.sh
- 控制台输出以下信息,无错误,表示安装成功:
...install protoc-gen-gogo: downloading google.golang.org/protobuf v1.23.0install grpcclear resourceinstall finish
- 在$GOPATH/bin目录可见protoc-gen-go:
[golang@centos7 ~]$ cd $GOPATH/bin[golang@centos7 bin]$ lsprotoc protoc-gen-go
- 至此,gRPC开发环境已经准备完毕,下一篇可以开始实战了;
安装脚本一览
protoc-gen-go和grpc包的安装过程都在install-grpc.sh中完成,该脚本内容如下所示,可见都是些很简单的操作:下载源码、解压、构建
#!/bin/bashmkdir ~/temp-grpc-installecho "clear old files"rm -rf $GOPATH/src/google.golang.org/grpcrm -rf $GOPATH/src/golang.org/xrm -rf $GOPATH/src/google.golang.org/protobufrm -rf $GOPATH/src/github.com/golang/protobufrm -rf $GOPATH/src/google.golang.org/genprotoecho "create directory"mkdir -p $GOPATH/src/google.golang.org/mkdir -p $GOPATH/src/golang.org/xmkdir -p $GOPATH/src/github.com/golang/echo "1. grpc"cd ~/temp-grpc-installwget https://github.com/grpc/grpc-go/archive/master.zip -O grpc-go.zipunzip grpc-go.zip -d $GOPATH/src/google.golang.org/cd $GOPATH/src/google.golang.org/ mv grpc-go-master grpcecho "2. x/net"cd ~/temp-grpc-installwget https://github.com/golang/net/archive/master.zip -O net.zipunzip net.zip -d $GOPATH/src/golang.org/x/cd $GOPATH/src/golang.org/x/ mv net-master netecho "3. x/text"cd ~/temp-grpc-installwget https://github.com/golang/text/archive/master.zip -O text.zipunzip text.zip -d $GOPATH/src/golang.org/x/cd $GOPATH/src/golang.org/x/ mv text-master textecho "4. protobuf-go"cd ~/temp-grpc-installwget https://github.com/protocolbuffers/protobuf-go/archive/master.zip -O protobuf-go.zipunzip protobuf-go.zip -d $GOPATH/src/google.golang.org/ cd $GOPATH/src/google.golang.org/mv protobuf-go-master protobufecho "5. protobuf"cd ~/temp-grpc-installwget https://github.com/golang/protobuf/archive/master.zip -O protobuf.zipunzip protobuf.zip -d $GOPATH/src/github.com/golang/cd $GOPATH/src/github.com/golang/mv protobuf-master protobufecho "6. go-genproto"cd ~/temp-grpc-installwget https://github.com/google/go-genproto/archive/master.zip -O go-genproto.zipunzip go-genproto.zip -d $GOPATH/src/google.golang.org/cd $GOPATH/src/google.golang.org/mv go-genproto-master genprotoecho "7. x/sys"cd ~/temp-grpc-installwget https://github.com/golang/sys/archive/master.zip -O sys.zipunzip sys.zip -d $GOPATH/src/golang.org/x/cd $GOPATH/src/golang.org/xmv sys-master sysecho "install protoc-gen-go"cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go/go buildgo installecho "install grpc"cd $GOPATH/src/go install google.golang.org/grpcecho "clear resource"cd ~/rm -rf ~/temp-grpc-installecho "install finish"
你不孤单,欣宸原创一路相伴
欢迎关注公众号:程序员欣宸
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界... https://github.com/zq2599/blog_demos