Go语言的学习完全是为了学分布式存储。
学分布式存储的原因是因为公司云改,组里开始大刀阔斧的自研分布式存储,而我除了ceph什么都不知道。于是花了几周的时间去看论文,看别人自研的分布式存储是怎么做的。从经典的GFS,过时一点的TFS,规模比较大的Azure,Amazon EBS,OceanBase,到令人叹为观止的Pangu2.0(时延500微秒,百万iops),且不说里面涉及到的新硬件,新概念,RDMA,SPDK,DPDK,我连最最基础的分布式软件的原理都一知半解,深感焦虑。上来就看别人软件架构并不是一个好的选择,因为有一个问题会始终困扰你:“为毛这些人都这么设计架构,为啥都在讲paxos,raft,为啥都涉及单点的讨论”。所以必须沉下心好好学分布式原理,补上这一课。感谢知乎b站,让我寻到了学习的方向---MIT6.824。说了一大堆,终于进入正题,为啥要学Go语言,很简单,因为这门课的lab老师建议用Go完成,我就是这么的听话,理由就是如此朴素。
既然是新语言,如何开始?自然就是装软件,配环境变量,安装工具包,了解编译方法,测试运行。好吧,那就开始了。
1.软件安装
https://golang.google.cn/
2.环境变量配置
打开系统面板-》高级设置-》环境变量-》新增GOPATH和GOROOT
GOPATH就是工作路径
GOROOT就是安装路径
配置好之后
go env可以用来测试
3.安装工具包
git clone https://github.com/golang/tools $GOPATH/src/golang.org/x/tools
go build golang.org/x/tools
*因为有墙的问题,所以有一些依赖包是需要手动装的,装的方法也不难:
cd进入$GOPATH/src/golang.org/x/
git clone 对应包的git地址即可
一般这些git包可以在https://github.com/golang/找到
如果我想安装godoc,还可以这么办
go get golang.org/x/tools/cmd/godoc
装好后,可以本地浏览器访问doc
godoc -http=:6060 -play
*linux安装godoc的方法
mkdir -p $GOPATH/src/golang.org/x
cd $GOPATH/src/golang.org/x
git clone https://github.com/golang/tools.git
cd tools/cmd/
go install ...
4.IDE
我最爱的编译器那非sublime莫属,灵活轻便,使用sublime text需要安装GoSublime
首先手动下载插件
git clone https://github.com/DisposaBoy/GoSublime.git](https://github.com/DisposaBoy/GoSublime.git
找到插件安装位置
选中Preferences->Browse Packages… **
然后把GoSublime放到这个目录,重启IDE
选中Preferences->Package Settings->GoSublime->Settings-User
配置goroot和gopath
重启sublime,发现sublime下方出现报错,缺少margo
解决方法:
1、选中 Preferences->Browse Packages… ** 并点击
2、创建目录 GoSublime\src\margo
3、将 GoSublime\src[margo.sh](http://margo.sh/)\extension-example\extension-example.go 复制粘贴为 GoSublime\src\margo\margo.go
重启sublime即可
5.编译运行
go build与go run命令去编译、编译并执行hello.go程序