1.4 Go语言从入门到精通:Go代理goproxy


作者:xcbeyond
疯狂源自梦想,技术成就辉煌!微信公众号:《程序猿技术大咖》号主,专注后端开发多年,拥有丰富的研发经验,乐于技术输出、分享,现阶段从事微服务架构项目的研发工作,涉及架构设计、技术选型、业务研发等工作。对于Java、微服务、数据库、Docker有深入了解,并有大量的调优经验。 









在逐步编写Go程序时,会涉及使用到第三方提供的Go依赖包,如:github.com/spf13/cobra,在国内使用 go get 命令安装时经常会出现 timeout 等问题,实在让人头疼。大家都知道,在国内网络环境下,想要解决这种问题,只有掌握xx上网才能彻底解决。但是xx上网却是需要花费额外成本的,那该怎么办呢?

本文将会介绍一种Go代理 goproxy 的方式来解决上述问题,让你既不花钱,又能快速下载安装。
1、goproxy.cn 介绍

Go的1.11版本以后可以设置环境变量 GOPROXY,来设置代理,以加速下载。目前国内使用最多的是 goproxy.cn,号称中国最可靠的Go模块代理。

它有以下特点:

    极速下载: 我们正在使用七牛云 CDN 在全球范围内加速我们的服务,并且我们没有设置任何带宽限制。凭借着数以千计的 CDN 节点和 40Gbps+ 的单节点带宽,你将被赋予一个以极快的速度下载模块版本的能力。

    没有限制: 我们不但没有设置带宽限制。更进一步地,我们还没有设置任何速率限制。这意味着你可以在任何场景下使用我们的服务,例如 CI/CD。你甚至可以像 goproxy.baidu.com 一样将我们的服务用作上游代理。

    功能齐全: 我们一直在使用最新的 Go 版本,甚至是不稳定版本。因为我们提供了最前沿的功能支持。特别地,我们支持代理默认的校验和数据库 sum.golang.org。你不需要做任何额外的事情,它就可以工作。

    数据可视: 为了使大家可以更好地了解我们的服务中所有模块的活跃度,我们推出了 Go 模块代理世界中的首个统计数据 API。通过得体的 RESTful API 设计,你将能够轻松地查询我们服务中所有模块版本的统计数据。

2、goproxy.cn 配置

推荐在Go 1.13 以上版本使用。

打开你的终端执行下面命令:

$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct

   
macOS 或 Linux:

$ export GO111MODULE=on
$ export GOPROXY=https://goproxy.cn


或者

$ echo "export GO111MODULE=on" >> ~/.profile
$ echo "export GOPROXY=https://goproxy.cn" >> ~/.profile
$ source ~/.profile

    

Windows:

打开 cmd 命令行,执行:

C:\> $env:GO111MODULE = "on"
C:\> $env:GOPROXY = "https://goproxy.cn"


或者

1. 打开“开始”并搜索“env”
2. 选择“编辑系统环境变量”
3. 点击“环境变量…”按钮
4. 在“<你的用户名> 的用户变量”章节下(上半部分)
5. 点击“新建…”按钮
6. 选择“变量名”输入框并输入“GO111MODULE”
7. 选择“变量值”输入框并输入“on”
8. 点击“确定”按钮
9. 点击“新建…”按钮
10. 选择“变量名”输入框并输入“GOPROXY”
11. 选择“变量值”输入框并输入“https://goproxy.cn”
12. 点击“确定”按钮

    

3、小结

有上述goproxy 代理的设置,go get 命令下载将会变得很快,轻松解决了timeout问题。此外,也可以通过国外goproxy.io 代理完成加速,配置方法和 goproxy.cn 完全一样。

参考文章:

    https://goproxy.cn/
    https://www.goproxy.io/zh/