关于云计算:gRPC学习之二GO的gRPC开发环境准备

2次阅读

共计 3755 个字符,预计需要花费 10 分钟才能阅读完成。

欢送拜访我的 GitHub

这里分类和汇总了欣宸的全副原创 (含配套源码):https://github.com/zq2599/blog_demos

gRPC 学习系列文章链接

  1. 在 CentOS7 部署和设置 GO
  2. GO 的 gRPC 开发环境筹备
  3. 初试 GO 版 gRPC 开发
  4. 实战四类服务办法
  5. gRPC-Gateway 实战
  6. gRPC-Gateway 集成 swagger

本篇概览

  • 本文《gRPC 学习》系列的第二篇,前文在 CentOS7 环境装好了 GO,接下来要把 gRPC 开发环境筹备好,总的来说一共三步:

装置 protoc

  1. 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
  1. 执行 <font color=”blue”>protoc –version</font> 查看 protoc 装置是否胜利:
[golang@centos7 ~]$ protoc --version
libprotoc 3.14.0

装置 protoc-gen-go 和 grpc 包遇到的问题

  • 实际证明,用 <font color=”blue”>go get</font> 命令装置 protoc-gen-go 和 grpc 包的时候常常提醒网络谬误,于是我写了个 shell 脚本,将 protoc-gen-go 和 grpc 包的源码从 GitHub 下载下来,在本地编译构建,达到 <font color=”blue”>go get</font> 装置雷同的成果;
  • 应用 <font color=”blue”>git clone</font> 命令下载源码比拟耗时 (文件数量太多),因而我写的脚本是下载对应的源码包(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
  1. 控制台输入以下信息,无谬误,示意装置胜利:
...
install protoc-gen-go
go: downloading google.golang.org/protobuf v1.23.0
install grpc
clear resource
install finish
  1. 在 <font color=”blue”>$GOPATH/bin</font> 目录可见 protoc-gen-go:
[golang@centos7 ~]$ cd $GOPATH/bin
[golang@centos7 bin]$ ls
protoc  protoc-gen-go
    • 至此,gRPC 开发环境曾经筹备结束,下一篇能够开始实战了;

装置脚本一览

protoc-gen-go 和 grpc 包的装置过程都在 install-grpc.sh 中实现,该脚本内容如下所示,可见都是些很简略的操作:下载源码、解压、构建

#!/bin/bash

mkdir ~/temp-grpc-install

echo "clear old files"
rm -rf $GOPATH/src/google.golang.org/grpc
rm -rf $GOPATH/src/golang.org/x
rm -rf $GOPATH/src/google.golang.org/protobuf
rm -rf $GOPATH/src/github.com/golang/protobuf
rm -rf $GOPATH/src/google.golang.org/genproto

echo "create directory"
mkdir -p $GOPATH/src/google.golang.org/
mkdir -p $GOPATH/src/golang.org/x
mkdir -p $GOPATH/src/github.com/golang/

echo "1. grpc"
cd ~/temp-grpc-install
wget https://github.com/grpc/grpc-go/archive/master.zip -O grpc-go.zip
unzip grpc-go.zip -d $GOPATH/src/google.golang.org/
cd $GOPATH/src/google.golang.org/ 
mv grpc-go-master grpc

echo "2. x/net"
cd ~/temp-grpc-install
wget https://github.com/golang/net/archive/master.zip -O net.zip
unzip net.zip -d $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x/ 
mv net-master net

echo "3. x/text"
cd ~/temp-grpc-install
wget https://github.com/golang/text/archive/master.zip -O text.zip
unzip text.zip -d $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x/ 
mv text-master text

echo "4. protobuf-go"
cd ~/temp-grpc-install
wget https://github.com/protocolbuffers/protobuf-go/archive/master.zip -O protobuf-go.zip
unzip protobuf-go.zip -d $GOPATH/src/google.golang.org/ 
cd $GOPATH/src/google.golang.org/
mv protobuf-go-master protobuf

echo "5. protobuf"
cd ~/temp-grpc-install
wget https://github.com/golang/protobuf/archive/master.zip -O protobuf.zip
unzip protobuf.zip -d $GOPATH/src/github.com/golang/
cd $GOPATH/src/github.com/golang/
mv protobuf-master protobuf

echo "6. go-genproto"
cd ~/temp-grpc-install
wget https://github.com/google/go-genproto/archive/master.zip -O go-genproto.zip
unzip go-genproto.zip -d $GOPATH/src/google.golang.org/
cd $GOPATH/src/google.golang.org/
mv go-genproto-master genproto

echo "7. x/sys"
cd ~/temp-grpc-install
wget https://github.com/golang/sys/archive/master.zip -O sys.zip
unzip sys.zip -d $GOPATH/src/golang.org/x/
cd $GOPATH/src/golang.org/x
mv sys-master sys

echo "install protoc-gen-go"
cd $GOPATH/src/github.com/golang/protobuf/protoc-gen-go/
go build
go install

echo "install grpc"

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

echo "clear resource"
cd ~/
rm -rf ~/temp-grpc-install

echo "install finish"

你不孤独,欣宸原创一路相伴

  1. Java 系列
  2. Spring 系列
  3. Docker 系列
  4. kubernetes 系列
  5. 数据库 + 中间件系列
  6. DevOps 系列

欢送关注公众号:程序员欣宸

微信搜寻「程序员欣宸」,我是欣宸,期待与您一起畅游 Java 世界 …
https://github.com/zq2599/blog_demos

正文完
 0