作品简介

etcd是一个可靠的分布式KV存储产品,由CoreOS公司开发,其底层使用Raft算法保证一致性,主要用于共享配置和服务发现。本书主要从源码角度深入剖析etcd,首先介绍etcd的背景知识,如何搭建源码环境及相关的命令。接着从基本的Raft协议开始介绍,帮助读者了解Raft协议的背景、如何处理各种异常场景及相关扩展。然后分析etcd-raft模块对Raft协议的实现,同时介绍etcd自带的raftexample示例,帮助读者了解etcd-raft模块的基本使用方法。本书还介绍HTTP编程基础和etcd-rafthttp模块的工作原理及具体实现,以及etcd中如何处理WAL日志文件及快照数据文件,并且详细分析etcd的底层存储,对v2版本和v3版本的存储都做了详细的介绍。最后重点介绍etcd服务端和客户端的相关内容,etcd服务端会组装并协调前面介绍的各个组件,并且在它们的基础上扩展出了更多的功能,此外还详细分析v2和v3两个版本客户端的具体实现。本书适合Go语言开发者,以及对etcd技术感兴趣的读者阅读。

百里燊,硕士研究生毕业,小时候想成为闯荡江湖的侠客,结果着迷于各种代码,最终沦为辛勤工作的程序员。期待与大家进行交流。邮箱:shen_baili@163.com

作品目录

  • 作者简介
  • 前言
  • 第1章 etcd入门
  • 1.1 etcd简介
  • 1.2 数据模型
  • 1.3 环境搭建
  • 本章小结
  • 第2章 Raft协议
  • 2.1 Leader选举
  • 2.2 日志复制
  • 2.3 网络分区的场景
  • 2.4 日志压缩与快照
  • 2.5 其他技术点
  • 本章小结
  • 第3章 etcd-raft模块详解
  • 3.1 raft结构体
  • 3.2 Node接口
  • 3.3 raftexample示例分析
  • 本章小结
  • 第4章 网络层
  • 4.1 Go语言网络编程基础
  • 4.2 etcd-rafthttp模块详解
  • 4.3 Handler实例
  • 本章小结
  • 第5章 WAL日志与快照
  • 5.1 WAL日志
  • 5.2 SnapShotter
  • 本章小结
  • 第6章 storage
  • 6.1 etcd v2版本存储
  • 6.2 etcd v3版本存储
  • 本章小结
  • 第7章 etcd-server详解
  • 7.1 raftNode结构体
  • 7.2 RaftCluster
  • 7.3 EtcdServer
  • 7.4 ApplierV2和applierV3
  • 7.5 AlarmStore
  • 本章小结
  • 第8章 etcd客户端详解
  • 8.1 GRPC基础
  • 8.2 Client v3
  • 8.3 Client v2
  • 本章小结
  • 参考文献
展开全部