Etcd介绍
etcd 是一个高度一致的分布式键值 (key-value) 存储,它提供了一种可靠的方式来存储需要由分布式系统或机器集群访问的数据。它可以优雅地处理网络分区期间的领导者选举,即使在领导者节点中也可以容忍机器故障。etcd 是用 Go 语言编写的,它具有出色的跨平台支持,小的二进制文件和强大的社区。 etcd 机器之间的通信通过 Raft 共识算法处理。
服务发现
etcd术语
Raft : etcd 所采用的保证分布式系统强一致性的算法。Node :一个 Raft 状态机实例。Member : 一个 etcd 实例。它管理着一个 Node ,并且可以为客户端请求提供服务。Cluster :由多个 Member 构成可以协同工作的 etcd 集群。Peer :对同一个 etcd 集群中另外一个 Member 的称呼。Client : 向 etcd 集群发送 HTTP 请求的客户端。WAL :预写式日志, etcd 用于持久化存储的日志格式。snapshot : etcd 防止 WAL 文件过多而设置的快照,存储 etcd 数据状态。Proxy : etcd 的一种模式,为 etcd 集群提供反向代理服务。Leader( 领导者 ) : Raft 算法中通过竞选而产生的处理所有数据提交的节点。Follower( 跟随者 ) :竞选失败的节点作为 Raft 中的从属节点,为算法提供强一致性保证。Candidate :当 Follower 超过一定时间接收不到 Leader 的心跳时转变为 Candidate 开始 Leader 竞选。Term :某个节点成为 Leader 到下一次竞选开始的时间周期,称为一个 Term 。Index :数据项编号。 Raft 中通过 Term 和 Index 来定位数据。
etcd安装(centos)
创建一个local文件夹
把这个解压包放在简单的文件夹里面
解压压缩包
进入文件夹
切换至
etcd
根目录,将
etcd
和
etcdctl
二进制文件复制到
/usr/local/bin
目录这样系统中可以直接调用
etcd/etcdctl
这两个程序
查看
etcd
版本
创建一个etcd服务
建立
etcd
相关目录
(
即数据文件和配置文件的保存位置
)
mkdir -p /var/lib/etcd/ && mkdir -p /etc/etcd/
创建
etcd
配置文件
vim /etc/etcd/etcd.conf
创建
systemd
配置文件
vim /etc/systemd/system/etcd.service
启动
/
停止
/
查看
etcd
服务
systemctl daemon-reload && systemctl enable etcd && systemctl start etcd && systemctl status etcd
etcd基本使用
帮助命令
etcdctl -h
put
放入数据
etcdctl put /testdir/testkey "Hello world"
--sort 对结果进行排序
--consistent 将请求发给主节点,保证获取内容的一致性
del
删除数据
清空数据
etcdctl del / --prefix
删除所有/test前缀的节点
etcdctl del /test --prefix
watch,
监测一个键值的变化,一旦键值发生更新,就会输出最新的值并退出
etcdctl watch key1