Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现.
特点:
简单:支持 curl 方式的用户 API (HTTP+JSON)
安全:可选 SSL 客户端证书认证
快速:单实例可达每秒 1000 次写操作
可靠:使用 Raft 实现分布式
etcd结构:
一个 etcd 节点的核心由三部分组成:
- Raft:raft 状态机是对 raft 共识算法的实现
- WAL:raft 日志存储
- Storage:数据的存储与索引
安装和使用:
wget https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz cp etcd* /bin/ etcd -version 启动etcd: # mkdir /data/etcd # /bin/etcd -name etcdserver -peer-addr 192.168.1.21:7001 -addr 192.168.1.21:4001 -data-dir /data/etcd -peer-bind-addr 0.0.0.0:7001 -bind-addr 0.0.0.0:4001 & 参数“-peer-addr”指定与其它节点通讯的地址;参数“-addr”指定服务监听地址;参数“-data-dir”为指定数据存储目录
API接口调用:
设置(set)插入数据: curl -L http://127.0.0.1:4001/v2/keys/apps/abc.com -XPUT -d value="5.5.5.5:8080|6.6.6.6:8080" curl -L http://127.0.0.1:4001/v2/keys/apps/bcd.com -XPUT -d value="3.3.3.3:8080|4.4.4.4:8080" curl -L http://127.0.0.1:4001/v2/keys/apps/ef.com -XPUT -d value="1.1.1.1:8080|2.2.2.2:8080" 查询(get)数据: curl -L http://127.0.0.1:4001/v2/keys/apps 删除(del)数据: curl -L http://127.0.0.14001/v2/keys/lekey -XDELETE
ectdctl命令使用:
列出根目录下的内容: etcdctl ls / etcdctl get /apps/ap.com/ etcdctl mkdir /demo 新建目录 etcdctl mk demo 新建键 etcdctl rm /path --recursive 递归删除目录下的所有目录和键 curl -L http://127.0.0.1:7001/v2/admin/config curl -L http://127.0.0.1:7001/v2/admin/machines
在Etcd的存储系统中,所有以下划线开头的目录都被认为是“隐藏目录”。这种目录是不能通过 etcdctl ls 命令或 HTTP GET访问其上级目录列出来的。而知道路径的准确名称的用户可以通过的完整路径以处理普通数据一样的方式对隐藏目录下的数据节点进行增删查改;然后直接使用GET访问 /App 目录看到的是一个空目录,但显示的获取 /App/_message数据节点,却能发现这个键是确实存在的。也就是说,隐藏的目录或键不会被列出,只有知道完整路径的用户可以直接访问到.
时间: 2024-11-07 11:05:09