前段时间认真学习了 ETCD 源码实现,往后的一段时间,会陆陆续续的写一些学习记录。
ETCD 的使用方法、用途等,可以通过 Google 或者百度查询,这里只是记录源码相关的学习,如有错误,欢迎指正。
本章主要介绍 ETCD 的主要几个组成部分。
ECTD主要包括以下几个部分:
Storage
存储包括两部分组成,内存和磁盘。
index:键值索引(MVCC 多版本控制)
kv:原始键值对(MVCC 多版本控制)
snaphot:数据快照
metadata:元数据,主要记录当前节点的状态信息。
Transport
Transport 主要实现数据传输,其中包括两种传输方式,一是长连接(数据传输完成不关闭),二是短链接(数据传输完成就关闭)。
短连接主要用于传输大数据,比如数据快照。
Server
httpServer 或 grpc Server,用于接收外部请求。
Monitor
服务监控模块,各个模块上报自身状态数据,用户可以通过特定地址,查看服务的运行状态。