Etcd说明

Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现.


特点:

简单:支持 curl 方式的用户 API (HTTP+JSON)

安全:可选 SSL 客户端证书认证

快速:单实例可达每秒 1000 次写操作

可靠:使用 Raft 实现分布式


etcd结构:

wKioL1efXjKgGloRAABgrJjqG30423.png

一个 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数据节点,却能发现这个键是确实存在的。也就是说,隐藏的目录或键不会被列出,只有知道完整路径的用户可以直接访问到.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章