etcd分布式键-值对存储系统
什么是分布式系统:
业务量的迅速增大,普通的单机系统无法满足要求,要么垂直扩展升级机器硬件,要么水平扩展堆廉价服务器。目前互联网领域选择了后者 水平扩展
etcd介绍:
1、etcd是CoreOS基于Raft开发的分布式key-value存储,可用于服务发现、共享配置以及一致性保障(如数据库选注、分布式锁等)
2、etcd是一个go语言编写的分布式、高可用的一致性键值存储系统
3、etcd基于Raft协议,通过日志复制的方式来保证数据的强一致性
4、etcd默认数据一经更新就落盘持久化,数据持久化存储使用WAL(write ahead log,预写式日志)格式。WAL记录了数据变化的全过程,在etcd中所有数据在提交之前都要先写入WAL中;etcd的snapshot(快照)文件存储了某一时刻etcd的所有数据,默认设置为每10000条记录做一次快照,经过快照后WAL文件即可删除
etcd的优势
1、etcd更加稳定可靠,他的唯一目标就是把分布式一致性键值存储做到极致,其更注重稳定性和扩展性
2、在服务发现的实现上,etcd使用的是节点租约(Lease),并且Group(多key);而zookeeper使用的是临时节点,临时节点存在不少问题。
3、etcd支持MVCC多版本并发控制
etcd分布式键-值对存储系统(controller)
一、安装、配置服务器
yum -y install etcd
vim /etc/etcd/etcd.conf
二、启动、检查服务器运行情况
systemctl enable/restart etcd
netstat -tnlip|grep etcd (2379、2380)
三、etcd服务管理
etcdctl是管理etcd服务的工具,利用它可以实现数据的存储。
向etcd中存入一个键-值对,键为‘testkey’,值为‘liupanming’;从etcd中读取键‘testkey’所对应的值
etcdctl set testkey liupanming
etcdctl get testkey
‘set’表示执行存入键-值对操作;‘get’表示读取操作,通过键来读取其对应的值。