Windows下安装grpc开发环境

1 安装golang语言环境

详细可以参考本人博客文章Golang在Ubuntu 和 Windows下的安装
注意配置好GOPATH环境变量。

2. 安装gRPC

2.1 安装Protocol buffer编译工具 protoc第三版

安装下载地址:https://github.com/protocolbuffers/protobuf/releases
我下载的是protoc-3.12.3-win64.zip。目前protoc已经到第四版了,不要下载错了。
安装完成后,将安装好的protoc.exe路径加入到windows环境变量Path便于将来访问。

2.2 安装gRPC

以下是安装方式(推荐使用Git Bash命令行客户端):

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/grpc/grpc-go.git $GOPATH/src/google.golang.org/grpc
git clone https://github.com/google/go-genproto.git $GOPATH/src/google.golang.org/genproto

然后进入到$GOPATH/src目录下。

go install google.golang.org/grpc

下面是gRPC官网给出的protoc-gen-go的安装办法。执行安装后会生成会在$GOPATH目录下生成protoc-gen-go.exe 文件。

set GO111MODULE=on 
go get github.com/golang/protobuf/protoc-gen-go

3. 运行样例gRPC程序

  1. 下载样本程序
git clone -b v1.30.0 https://github.com/grpc/grpc-go
  1. 切换至运行目录
cd grpc-go/examples/helloworld
  1. 编译和执行服务端程序
go run greeter_server/main.go
  1. 在另外一个命令行窗口编译和执行客户端程序
go run greeter_client/main.go

这里是服务器端输出样例:

...go\src\github.com\grpc-go\examples\helloworld>go run greeter_server/main.go
go: downloading google.golang.org/grpc v1.30.0-dev.1
go: downloading github.com/golang/protobuf v1.4.0
go: downloading google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55
go: downloading golang.org/x/net v0.0.0-20190311183353-d8887717615a
go: downloading google.golang.org/protobuf v1.21.0
go: downloading golang.org/x/text v0.3.0
2020/07/21 09:48:10 Received: world

这里是客户端输出样例:

...go\src\github.com\grpc-go\examples\helloworld>go run greeter_server/main.go
2020/07/21 09:48:10 Greeting: Hello world

4. 下载缓慢甚至出错的问题解决

在安装和运行样例程序的时候,都会发现网络问题导致的各种烦恼和问题。

4.1 设置Git下载代理

下面是设置例子。可以极大提高下载速度

#设置http/https代理(例子)
git config --global http.proxy 'socks5://127.0.0.1:1080' 
git config --global https.proxy 'socks5://127.0.0.1:1080'
#或者只设置github的代理
git config --global http.http://github.com.proxy socks5://127.0.0.1:1080
git config --global https.https://github.com.proxy socks5://127.0.0.1:1080
#检查代理是否正常设置完成
git config --global --get http.proxy
git config --global --get https.proxy
git config --global --get http.http://github.com.proxy
git config --global --get https.https://github.com.proxy
#去掉代理
git config --global --unset http.proxy
git config --global --unset https.proxy

4.2 设置Go网络代理

下面的例子是没有设置go网络代理出现的问题。

>go run greeter_server/main.go
go: github.com/golang/[email protected]: Get "https://proxy.golang.org/github.com/golang/mock/@v/v1.1.1.mod": dial tcp 34.64.4.81:443: connectex: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.

下面是临时环境变量的写法。

set http_proxy=socks5://127.0.0.1:1080
set https_proxy=%http_proxy%

设置好之后的输出效果参考本文【3 运行样例gRPC程序 】。


参考1 gRPC官网安装手册:Quick Start
参考2 简书博客: Windows下grpc安装
参考3 配置终端代理解决 go get 命令国内无法使用

你可能感兴趣的:(开发语言,#golang)