Etcd介绍
分布式,可靠的,kv分布式系统 Raft算法 从多个节点选出leader,leader负责数据的同步和分发。 ### quorum=(n+1)/2 3个节点容忍1个故障 5个节点容忍2个故障 API PUT(key,value)/Delete(key) Get(key)/Get(keyFrom,keyEnd) key的范围 Watch(key/keyPrefix) Transactions(if/then/else ops).commit() 满足条件,执行操纵 Leases:Grant/Revoke/KeepAlive etcd的数据版本号机制 term:全局单调递增 (整个集群leader的任期,leader进行切换,term加1) revision: 全局单调递增 (代表的kv修改一次,revision加1) KeyValue: create_revision:创建的次数 mod_revision:修改的次数 version:此次key修改的次数 一个数据有多个版本,通过定期Compaction来清理历史数据 lease(租约) 性能优化 Ratf层 网络IO 节点之间的RTT/带宽 磁盘IO 写入延迟 Storage 磁盘IO fdatasync延迟 索引层所的block boltdb Tx的锁 boltdb本身的性能 其他 内核参数 grpc api层的延迟