内容介绍
etcd是一个可靠的的分布式KV存储,由CoreOS公司开发,其底层使用Raft算法保证一致性,主要用于共享配置和服务发现。本书主要从源码角度深入剖析etcd,首先介绍etcd的背景知识,并介绍如何搭建起源码环境以及相关的命令。然后从基本的Raft协议开始介绍,帮助读者了解Raft协议的背景。接着分析etcd-raft模块对Raft协议的实现,etcd-raft模块是etcd的核心模块之一,该模块也被很多其他的项目中直接作为Raft协议的底层实现。然后介绍Http编程基础以及etcd-rafthttp模块的工作原理和具体实现,介绍etcd中如何处理WAL日志文件以及快照数据文件,详细分析了etcd的底层存储。很后重点介绍etcd服务端和etcd客户端的相关内容。
目录
- 章etcd新手入门
- 1.2etcd介绍
- 1.3数据模型
- 1.7自然环境构建
- 1.3.1环境变量
- 1.3.2编码构造
- 1.3.3运作
- 本章总结
- 第2章Raft协议书
- 2.2Leader大选
- 3.2系统日志拷贝
- 2.2互联网系统分区的情景
- 2.6系统日志缩小与快照
- 2.3别的技术性点
- 2.5.1linearizable词义
- 2.5.2只读post请求
- 2.5.3PreVote情况
- 2.5.4Leader连接点迁移
- 本章总结
- 第3章etcd-raft控制模块详细说明
- 3.2raft结构体
- 3.1.1Config结构体
- 3.1.2Storage插口以及建立
- 3.1.3unstable结构体
- 3.1.4raftLog结构体
- 3.1.5raft建立
- 4.3Node插口
- 3.2.1node结构体
- 3.2.2复位
- 3.2.3run()方式
- 3.2.4Node插口建立
- 3.2raftexample实例剖析
- 3.3.1raftNode
- 3.3.2.com服务器端
- 3.3.3kvstore
- 本章总结
- 第4章网络层
- 3.1Go語言网络编程基本
- 4.1.1.com.Server
- 4.1.2RoundTripper
- 9.6etcd-rafthttp控制模块详细说明
- 4.2.1rafthttp.Transporter插口
- 4.2.2Peer插口
- 4.2.3pipeline
- 4.2.4streamWriter案例
- 4.2.5streamReader案例
- 4.2.6snapshotSender
- 3.2Handler案例
- 4.3.1pipelineHandler
- 4.3.2streamHandler
- 4.3.3snapshotHandler
- 本章总结
- 第5章WAL系统日志与快照
- 5.2WAL系统日志
- 5.1.1复位
- 5.1.2开启系统日志
- 5.1.3载入系统日志
- 5.1.4增加系统日志
- 5.1.5文档转换
- 5.3SnapShotter
- 本章总结
- 第6章storage
- 6.1etcdv2版本号储存
- 6.1.1node
- 6.1.2Event
- 6.1.3watcher和watcherHub
- 6.1.4store
- 6.2etcdv3版本号储存
- 6.2.1backend
- 6.2.2watcher体制
- 6.2.3Lessor
- 本章总结
- 第7章etcd-server详细说明
- 7.1raftNode结构体
- 7.3RaftCluster
- 7.3EtcdServer
- 7.3.1复位
- 7.3.2申请注册Handler
- 7.3.3起动
- 7.4ApplierV2和applierV3
- 7.4.1ApplierV2
- 7.4.2applierV3
- 6.5AlarmStore
- 本章总结
- 第8章etcd手机客户端详细说明
- 8.1GRPC基本
- 8.1.1界定proto文档
- 8.1.2服务器端
- 8.1.3建立手机客户端
- 9.2Clientv3
- 8.2.1kvServer
- 8.2.2EtcdServer
- 8.2.3Client
- 8.4Clientv2
- 8.3.1KeysAPI插口
- 8.3.2httpClient插口
- 本章总结
- 论文参考文献