etcd
本质上就是一个分布式kv存储,采用Raft算法保证分布式一致性,实现了分布式锁2和leader选举3的机制。
etcd可以用于配置管理或者是集群的服务注册与发现。
性能上和zookeeper、consule的比较,可以参考https://coreos.com/blog/performance-of-etcd.html
etcd3特性
GRPC通信
实现机制
使用grpc通信,消息协议为protobuf。
优势
grpc带来的优势就是http2的多路复用,可以共享相同的TCP链路,大大节省内存占用。
TTL与Lease租约
- TTL(TimeToLive)
一次请求或一个key可以设置存活时长,API3改为租约机制。
- Lease
类似TTL,仍然用于设置存活时长,但不同的是它可以指定一组请求或key共用相同的租约,这样可以合并相同ttl的请求所占用的连接,从而减少必须维持的连接数。一旦到期,与之关联的所有key都将自动删除。
Watch观察者
- 基于版本的监视。
- 迭代通知.
数据模型
- 保存所有历史数据,也可以压缩。
事务
(未完待续)