注重体验与质量的电子书资源下载网站
分类于: 互联网 人工智能
简介
etcd技术内幕 豆 6.0分
资源最后更新于 2020-09-23 15:10:36
作者:百里燊
出版社:电子工业出版社
出版日期:2018-01
ISBN:9787121343865
文件格式: pdf
标签: etcd 分布式 raft协议 分布式存储 raft 源码分析 go 计算机
简介· · · · · ·
etcd是一个可靠的分布式KV存储产品,由CoreOS公司开发,其底层使用Raft算法保证一致性,主要用于共享配置和服务发现。
《etcd技术内幕》主要从源码角度深入剖析etcd,首先介绍etcd的背景知识,如何搭建源码环境及相关的命令。接着从基本的Raft协议开始介绍,帮助读者了解Raft协议的背景、如何处理各种异常场景及相关扩展。然后分析etcd-raft模块对Raft协议的实现,同时介绍etcd自带的raftexample示例,帮助读者了解etcd-raft模块的基本使用方法。《etcd技术内幕》还介绍HTTP编程基础和etcd-rafthttp模块的工作原理及具体实现,以及etcd中如何处理WAL日志文件及快照数据文件,并且详细分析etcd的底层存储,对v2版本和v3版本的存储都做了详细的介绍。最后重点介绍etcd服务端和客户端的相关内容,e...
目录
第1章 etcd入门
1.1 etcd简介
1.2 数据模型
1.3 环境搭建
1.3.1 环境变量
1.3.2 代码结构
1.3.3 运行
本章小结
第2章 Raft协议
2.1 Leader选举
2.2 日志复制
2.3 网络分区的场景
2.4 日志压缩与快照
2.5 其他技术点
2.5.1 linearizable语义
2.5.2 只读请求
2.5.3 PreVote状态
2.5.4 Leader节点转移
本章小结
第3章 etcd-raft模块详解
3.1 raft结构体
3.1.1 Config结构体
3.1.2 Storage接口及其实现
3.1.3 unstable结构体
3.1.4 raftLog结构体
3.1.5 raft实现
3.2 Node接口
3.2.1 node结构体
3.2.2 初始化
3.2.3 run()方法
3.2.4 Node接口实现
3.3 raftexample示例分析
3.3.1 raftNode
3.3.2 HTTP服务端
3.3.3 kvstore
本章小结
第4章 网络层
4.1 Go语言网络编程基础
4.1.1 http.Server
4.1.2 RoundTripper
4.2 etcd-rafthttp模块详解
4.2.1 rafthttp.Transporter接口
4.2.2 Peer接口
4.2.3 pipeline
4.2.4 streamWriter实例
4.2.5 streamReader实例
4.2.6 snapshotSender
4.3 Handler实例
4.3.1 pipelineHandler
4.3.2 streamHandler
4.3.3 snapshotHandler
本章小结
第5章 WAL日志与快照
5.1 WAL日志
5.1.1 初始化
5.1.2 打开日志
5.1.3 读取日志
5.1.4 追加日志
5.1.5 文件切换
5.2 SnapShotter
本章小结
第6章 storage
6.1 etcd v2版本存储
6.1.1 node
6.1.2 Event
6.1.3 watcher和watcherHub
6.1.4 store
6.2 etcd v3版本存储
6.2.1 backend
6.2.2 watcher机制
6.2.3 Lessor
本章小结
第7章 etcd-server详解
7.1 raftNode结构体
7.2 RaftCluster
7.3 EtcdServer
7.3.1 初始化
7.3.2 注册Handler
7.3.3 启动
7.4 ApplierV2和applierV3
7.4.1 ApplierV2
7.4.2 applierV3
7.5 AlarmStore
本章小结
第8章 etcd客户端详解
8.1 GRPC基础
8.1.1 定义proto文件
8.1.2 服务端
8.1.3 创建客户端
8.2 Client v3
8.2.1 kvServer
8.2.2 EtcdServer
8.2.3 Client
8.3 Client v2
8.3.1 KeysAPI接口
8.3.2 httpClient接口
本章小结
参考文献
1.1 etcd简介
1.2 数据模型
1.3 环境搭建
1.3.1 环境变量
1.3.2 代码结构
1.3.3 运行
本章小结
第2章 Raft协议
2.1 Leader选举
2.2 日志复制
2.3 网络分区的场景
2.4 日志压缩与快照
2.5 其他技术点
2.5.1 linearizable语义
2.5.2 只读请求
2.5.3 PreVote状态
2.5.4 Leader节点转移
本章小结
第3章 etcd-raft模块详解
3.1 raft结构体
3.1.1 Config结构体
3.1.2 Storage接口及其实现
3.1.3 unstable结构体
3.1.4 raftLog结构体
3.1.5 raft实现
3.2 Node接口
3.2.1 node结构体
3.2.2 初始化
3.2.3 run()方法
3.2.4 Node接口实现
3.3 raftexample示例分析
3.3.1 raftNode
3.3.2 HTTP服务端
3.3.3 kvstore
本章小结
第4章 网络层
4.1 Go语言网络编程基础
4.1.1 http.Server
4.1.2 RoundTripper
4.2 etcd-rafthttp模块详解
4.2.1 rafthttp.Transporter接口
4.2.2 Peer接口
4.2.3 pipeline
4.2.4 streamWriter实例
4.2.5 streamReader实例
4.2.6 snapshotSender
4.3 Handler实例
4.3.1 pipelineHandler
4.3.2 streamHandler
4.3.3 snapshotHandler
本章小结
第5章 WAL日志与快照
5.1 WAL日志
5.1.1 初始化
5.1.2 打开日志
5.1.3 读取日志
5.1.4 追加日志
5.1.5 文件切换
5.2 SnapShotter
本章小结
第6章 storage
6.1 etcd v2版本存储
6.1.1 node
6.1.2 Event
6.1.3 watcher和watcherHub
6.1.4 store
6.2 etcd v3版本存储
6.2.1 backend
6.2.2 watcher机制
6.2.3 Lessor
本章小结
第7章 etcd-server详解
7.1 raftNode结构体
7.2 RaftCluster
7.3 EtcdServer
7.3.1 初始化
7.3.2 注册Handler
7.3.3 启动
7.4 ApplierV2和applierV3
7.4.1 ApplierV2
7.4.2 applierV3
7.5 AlarmStore
本章小结
第8章 etcd客户端详解
8.1 GRPC基础
8.1.1 定义proto文件
8.1.2 服务端
8.1.3 创建客户端
8.2 Client v3
8.2.1 kvServer
8.2.2 EtcdServer
8.2.3 Client
8.3 Client v2
8.3.1 KeysAPI接口
8.3.2 httpClient接口
本章小结
参考文献