栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Go语言

搭建Go开发环境,开发 RPC 服务(MAC、VSCode)

Go语言 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

搭建Go开发环境,开发 RPC 服务(MAC、VSCode)

一、配置 Go 1.18 开发环境

1. install golang by brew

$ brew install go

2. set Path for Go

# .zshrc
# go
export GOROOT=/opt/homebrew/Cellar/go/1.18/libexec
export GOPATH=$HOME/workspace/project/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GOPROXY=https://goproxy.cn,direct
export GOPRIVATE=XXX(具体的私有库,可根据自己的配置来定)

注意,低版本 Go 不支持 GOPROXY 中带逗号。 

3. view go version

$ go version
go version go1.18 darwin/arm64
对于有些早期项目使用较低 Go 版本构建,使用「1.18」版本编译通不过,

注意,安装 Go 尽量安装团队统一在用的版本,安装过高或过低版本,可能有些地方不支持会产生许多报错。

这时需要支持 Go 多版本切换,安装「1.16」版本。
$ brew search go

$ brew unlink go

$ brew install go@1.16

$ brew link go@1.16

$ go version

go version go1.16.15 darwin/arm64

切换版本,也得切换对应的环境变量

export GOROOT=/opt/homebrew/Cellar/go@1.16/1.16.15/libexec

如果不使用 brew,也可从 https://golang.org/dl/ 选择合适版本,

下载完后,go version 可查看 go 版本,如有显示版本代表安装成功,

go env 查看 go 环境变量。

二、IDE 使用 VSCode 

VSCode 中安装 Go 的扩展,让它支持 Go 语言开发

填坑记录

Go插件一般可以直接安装成功,如果幸运的话,需要填一下这个坑。

Failed to find the "go" binary in either。GOROOT() or PATH(/usr/bin:/bin:/usr/sbin:/sbin). Check PATH, or Install Go and reload the window.

  1. Shift + Cmd + P
  2. Search for: "open settings" and choose "Open Settings (JSON)"
  3. Run go env and copy GOROOT value (in my case it's /opt/homebrew/Cellar/go@1.17/1.17.11/libexec).
  4. Add new record to settings.json:
"go.goroot": "Copied/GOROOT/path"

In my case,

"go.gopath": "/Users/shouyuan.man/workspace/project/go",
"go.goroot": "/opt/homebrew/Cellar/go@1.17/1.17.11/libexec"

安装 Go 语言开发工具包,支持提供诸如代码提示、代码自动补全等功能

如果代码中使用了「golangci-lint、goimports、mockgen、modvendor」,则用下面命令安装。

​$ GO111MODULE=off go get install github.com/goware/modvendor
$ GO111MODULE=off go get github.com/golang/mock/gomock
$ go install github.com/golang/mock/gomock
$ GO111MODULE=off go get github.com/golang/mock/mockgen
$ go install github.com/golang/mock/mockgen
$ GO111MODULE=off go get golang.org/x/tools/cmd/goimports
$ go install golang.org/x/tools/cmd/goimports
$ brew install golangci-lint

最后安装的 GO 开发辅助工具放在 bin 中

填坑

设置了 GOPROXY 代理,还是出现 i/o timeout,

Get "https://proxy.golang.org/github.com/cweill/gotests/gotests/@v/list": dial tcp 172.217.160.113:443: i/o timeout

问题:设置了GOPROXY还是出现i/o timeout · Issue #93 · goproxy/goproxy.cn · GitHub

解决VSCode安装Go tools失败的问题 | L2M2

后来发现,还得设置 GO111MODULE="on"。

如果代码库还是拉不下来,那就看看代码库的权限吧。

三、RPC相关

常用的 RPC 框架有两种,一种是「仅提供 RPC 调用能力」,如 grpc、Thrift 等, grpc 依赖了 Protocol Buffers(PB);另一种是「除了提供基本的RPC调用能力,还承载了各种服务治理功能」,如Dubbo、Motan、Spring Cloud等,与其说spring cloud是一个RPC框架,还不如说它是一个分布式系统解决方案,生态非常庞大。

如果仅仅是使用 RPC 调用功能,第一种 RPC 就能满足需要,要在 Go 项目中使用grpc、thrift,至少需要安装以下环境。

proto(proto>=3.5.0)

1. download
https://github.com/protocolbuffers/protobuf/releases/download/v3.5.0/protoc-3.5.0-osx-x86_64.zip

2. unzip
unzip protoc-3.5.0-osx-x86_64.zip -d protoc-3.5.0-osx-x86_64

3. mv
mv protoc-3.5.0-osx-x86_64/bin/protoc /usr/local/bin/protoc

4. validate
protoc --version

protoc-gen-go(protoc-gen-go==v1.3.2)

cd $GOPATH
mkdir -p src/github.com/golang
cd src/github.com/golang
wget https://github.com/golang/protobuf/archive/v1.3.2.zip
unzip v1.3.2.zip
mv protobuf-1.3.2 protobuf
cd protobuf
go install github.com/golang/protobuf/protoc-gen-go

thrift 安装

brew install thrift@0.9
echo 'export PATH="/usr/local/opt/thrift@0.9/bin:$PATH"' >> ~/.bashrc

Go Dev 网站

The Go Programming Language

golang.org

一个学 Go 的中文社区

Go下载 - Go语言中文网 - Golang中文社区

Have Fun

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/965592.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号