读《etcd 技术内幕》
作者:互联网
etcd 是一个可靠的分布式 KV 存储,其底层使用 Raft 算法保证一致性,主要用于共享配置和服务发现。
etcd 代码为了性能,使用了大量的 goroutine 和 Channel。
etcd-raft 模块是 etcd 的核心模块之一,是实现 raft 协议的。
etcd-rafthttp 模块
watcher 机制
Lessor
WAL 日志
SnapShotter 快照
api 接口:
etcd v2 提供了 http + json 的调用方式
etcd v3 客户端中使用 grpc 与服务端进行交互
etcd 集群可以支持每秒 1万+ 次的写入。
etcd 支持 TLS 访问。
键值对存储支持多版本
etcd v3 底层存储使用的是 BoltDB , key 的版本信息是 main revision + sub revision。
查询时选通过 B 树索引查找到对应的版本信息,然后在 BoltDB 中通过版本信息查找相应的 Value 值。
主要模块
raft:raft 协议的核心实现,只实现了基本的 raft 协议,未提供实现网络层相关的内容。
raft-http
wal 和 snap
store
mvcc
lease
auth 和 alarm
etcdserver: etcd 服务端实现
client v2
client v3
运行
单机模式
集群模式
标签:存储,模块,技术,v3,etcd,内幕,raft,版本信息 来源: https://blog.csdn.net/wide288/article/details/111470749