目录
一、简介
是一个高度一致的分布式键值存储,是由Go语言编写的
集群一般是由两个或两个以上的服务器组建而成,每一个服务器都是一个节点。
Raft算法是典型的多数派投票选举算法,选举机制与我们日常生活中的投票选举一样,获得投票最多的节点成为主节点。
二、选举
采用Raft算法选举,集群节点的角色有3种:
Leader:主节点,同一时刻只有一个Leader,负责协调和管理其他节点
Candidate:候选者,每一个节点都可以成为候选者
Follower:主节点的跟随者,不可以发起选举
1.初始化时,所有节点均为Follower状态。
2.开始选主时,所有节点的状态由Follower转化为Candidate,并向其他节点节点发送选举请求。
3.其他节点根据接收到的选举请求的先后顺序,回复是否同意成为主节点。每一轮选举中,一个节点只能投一张票。
4.若发起选举请求的节点获得超过一半的投票,则成为主节点,其状态转化为Leader,其他节点的状态则由Candidate降为Follower。Leader节点与Follower节点之间会定期发生心跳包,以检测主节点是否活着。
5.当Leader节点的任期到了,即发现其他服务器开始下一轮选主周期时,Leader节点的状态降级为Follower,进入新一轮选主。
三、etcd安装
1.上传etcd安装包并解压
tar -zxvf etcd-v3.4.3-linux-amd64.tar.gz
2. 使用
./etcd
3.切换到etcd根目录,将etcd和ercdctl二进制文件复制到 /usr/local/bin,这样即使不在etcd目录内可以使用
cp etcd etcdctl /usr/local/bin
4.跨级创建
mkdir -p /var/lib/etcd && mkdir -p /etc/etcd/
5.创建etcd配置文件
vim /etc/etcd/etcd.conf
6.创建systemd配置文件
vim /etc/systemd/system/etcd.service
7. 重新加载系统配置
systemctl daemon-reload
8.停止
systemctl enable etcd
9.启动
systemctl start etcd
10.查看etcd服务
systemctl status etcd
四、基本指令
放入数据
etcdctl put /test/aa
etcdctl get /test/aa
以test开头的值都会被删除
etcdctl del /test --prefix
监听aa
etcdctl watch /demo/aa