ETCD环境搭建
我们开始搭建阅读etcd源码的环境,推荐使用Goland。
环境变量
首先需要从Golang官网上下载最新的Golang包,下载完成后进行解压。打开~/.bash_profile文件,添加如下内容,配置环境变量:
export GOROOT=/Users/xxx/Documents/go
export GOBIN=$GOROOT/bin
export GOARCH=amd64
export GOOS=darwin
export GOPATH=/Users/xxx/Documents/GoProject
export PATH=$PATH:$GOBIN:$GOPATH/bin
最后执行“source .bash_profile”命令编译配置文件。通过“go env”命令验证变量配置是否成功。
代码结构
下载etcd的源代码:
go get github.com/coreos/etcd/cmd/etcd
下载完成后,将代码直接导入Goland中。各个模块的主要功能,如下:
raft:Raft协议的核心实现。
raft-http:Raft协议中各个节点发送消息时使用的网络层实现。
wal和snap:WAL日志和快照存储相关的实现。
store:etcd中的v2版本存储实现。
mvcc:etcd中的v3版本存储实现。
lease:租约相关的实现。
auth和alarm:权限和报警相关的实现。
etcdserver:etcd服务端实现。
client:v2版本客户端的具体实现。
clientv3:v3版本客户端的具体实现。
运行
单机模式:直接编译下载的源代码并运行即可。
集群模式:略