欢迎访问我的GitHub
这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos
RPC学习系列文章链接
本篇概览
- 本文《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 --version libprotoc 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-go go: downloading google.golang.org/protobuf v1.23.0 install grpc clear resource install finish
-
在$GOPATH/bin目录可见protoc-gen-go:
[golang@centos7 ~]$ cd $GOPATH/bin [golang@centos7 bin]$ ls protoc protoc-gen-go
- 至此,gRPC开发环境已经准备完毕,下一篇可以开始实战了;
安装脚本一览
protoc-gen-go和grpc包的安装过程都在install-grpc.sh中完成,该脚本内容如下所示,可见都是些很简单的操作:下载源码、解压、构建
1#!/bin/bash 2 3mkdir ~/temp-grpc-install 4 5echo "clear old files" 6rm -rf $GOPATH/src/google.golang.org/grpc 7rm -rf $GOPATH/src/golang.org/x 8rm -rf $GOPATH/src/google.golang.org/protobuf 9rm -rf $GOPATH/src/github.com/golang/protobuf 10rm -rf $GOPATH/src/google.golang.org/genproto 11 12echo "create directory" 13mkdir -p $GOPATH/src/google.golang.org/ 14mkdir -p $GOPATH/src/golang.org/x 15mkdir -p $GOPATH/src/github.com/golang/ 16 17echo "1. grpc" 18cd ~/temp-grpc-install 19wget https://github.com/grpc/grpc-go/archive/master.zip -O grpc-go.zip 20unzip grpc-go.zip -d $GOPATH/src/google.golang.org/ 21cd $GOPATH/src/google.golang.org/ 22mv grpc-go-master grpc 23 24echo "2. x/net" 25cd ~/temp-grpc-install 26wget https://github.com/golang/net/archive/master.zip -O net.zip 27unzip net.zip -d $GOPATH/src/golang.org/x/ 28cd $GOPATH/src/golang.org/x/ 29mv net-master net 30 31echo "3. x/text" 32cd ~/temp-grpc-install 33wget https://github.com/golang/text/archive/master.zip -O text.zip 34unzip text.zip -d $GOPATH/src/golang.org/x/ 35cd $GOPATH/src/golang.org/x/ 36mv text-master text 37 38echo "4. protobuf-go" 39cd ~/temp-grpc-install 40wget https://github.com/protocolbuffers/protobuf-go/archive/master.zip -O protobuf-go.zip 41unzip protobuf-go.zip -d $GOPATH/src/google.golang.org/ 42cd $GOPATH/src/google.golang.org/ 43mv protobuf-go-master protobuf 44 45echo "5. protobuf" 46cd ~/temp-grpc-install 47wget https://github.com/golang/protobuf/archive/master.zip -O protobuf.zip 48unzip protobuf.zip -d $GOPATH/src/github.com/golang/ 49cd $GOPATH/src/github.com/golang/ 50mv protobuf-master protobuf 51 52echo "6. go-genproto" 53cd ~/temp-grpc-install 54wget https://github.com/google/go-genproto/archive/master.zip -O go-genproto.zip 55unzip go-genproto.zip -d $GOPATH/src/google.golang.org/ 56cd $GOPATH/src/google.golang.org/ 57mv go-genproto-master genproto 58 59echo "7. x/sys" 60cd ~/temp-grpc-install 61wget https://github.com/golang/sys/archive/master.zip -O sys.zip 62unzip sys.zip -d $GOPATH/src/golang.org/x/ 63cd $GOPATH/src/golang.org/x 64mv sys-master sys 65 66echo "install protoc-gen-go" 67cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go/ 68go build 69go install 70 71echo "install grpc" 72 73cd $GOPATH/src/ 74go install google.golang.org/grpc 75 76echo "clear resource" 77cd ~/ 78rm -rf ~/temp-grpc-install 79 80echo "install finish"
你不孤单,欣宸原创一路相伴
欢迎关注公众号:程序员欣宸
微信搜索「程序员欣宸」,我是欣宸,期待与您一同畅游Java世界…
本文同步分享在 博客“程序员欣宸”(CSDN)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。