0x01 功能分类
Etcd作为一个分布式一致性的KV存储组件,现在的功能远不止于KV存储了。详细了解下其功能特点,有利用在使用它时做出最合适的选择。
通过etcdctl -h
命令可以看到有如下的特性。
- 基本的KV操作 get put txn del watch
- 数据操作 碎片整理 defrag 压缩事件 compaction
- 端点管理 endpoint
- 租期管理 lease
- 锁 lock
- 选举 elec
- 成员管理 member
- 转移leader move-leader
- 角色管理 role
- 快照管理 snapshot
- 运维相关 告警 alarm,状态检测 check,镜像 make-mirror
- 认证管理 auth
- 用户管理 user
居然已经有这么多的特性,不得不感叹开源社区力量的强大。之前也觉得ZooKeeper有许多不错的特性,但因为社区不活跃了,与Etcd对比,已经落后太多了。
0x02 基本的KV操作
基本的KV包含查询get、写入put、删除del、监听watch和事务txn。
2.1 get
仅仅一个get就支持了许多选项。先不管全局的选项。
--consistency
2个取值"l"或者"s",这涉及到了分布式中两种一致性模型,见参考1。简单理解l为linearizability,表示所有客户端任意一时间看到的数据都是一致的。而s代表sequential,只保证一个客户端自己的操作是有序的,自己写的