《etcd技术内幕》_百里燊

[复制链接]
online_admin aixure 发表于 2023-1-24 18:20:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
182046dj0x5tj1c7zjysi2
售 价: ¥5¥89加入会员,免费下载
库 存:9999
销 量:12
源 址:
卖家服务:  
客 服:QQ(早10点-晚6点)
资源详情
编辑推荐[url=]编辑[/url][url=] 播报[/url]
本书主要从源码角度深入剖析etcd:
√ etcd的背景知识,如何搭建源码环境及相关命令
√ Raft协议的背景,如何处理各种异常场景及相关扩展
√ etcd-raft模块对Raft协议的实现,etcd自带的raftexample示例
√ HTTP编程基础,etcd-rafthttp模块的工作原理和具体实现
√ etcd中如何处理WAL日志文件及快照数据文件
√ etcd的底层存储(v2和v3版本)
√ etcd服务端及扩展

内容提要[url=]编辑[/url][url=] 播报[/url]
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服务端和客户端的相关内容,etcd服务端会组装并协调前面介绍的各个组件,并且在它们的基础上扩展出了更多的功能,此外还详细分析v2和v3两个版本客户端的具体实现。
《etcd技术内幕》适合Go语言开发者,以及对etcd技术感兴趣的读者阅读。

图书目录[url=]编辑[/url][url=] 播报[/url]
第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接口
本章小结
参考文献
前言
etcd是一个可靠的分布式KV存储,其底层使用Raft算法保证一致性,主要用于共享配置和服务发现。etcd是CoreOS公司发起的一个开源项目。
目前提供配置共享和服务发现功能的组件还是比较多的,其中应用最广泛、大家最熟悉的应该就是ZooKeeper了,很多开源项目都在不同程度上依赖了ZooKeeper,例如,Dubbo、Kafka。在Golang社区中,etcd是唯一一个可以媲美ZooKeeper的组件,在有些方面,etcd甚至超越了ZooKeeper,给开发者眼前一亮的感觉。
etcd作为一个优秀的分布式KV存储产品,其底层的etcd-raft模块实现了Raft协议,可以帮助开发者快速实现最终一致性功能。etcd以其高性能、易维护、Raft实现等优点,受到越来越多的开发人员的青睐,在Golang社区中声名大噪。
etcd的代码中有很多亮点,为了提高整体性能,其实现中使用了大量的goroutine和Channel。etcd 3 中开始使用BoltDB作为底层的持久存储,使用BTree索引加速查询,还提供了可靠的Watcher功能,同时提供了基于GRPC的新版本客户端。当然,etcd 3依然兼容etcd 2的内存存储和HTTP API。
etcd 3中有很多令人称赞的功能和优秀的设计,但至今还没有深入剖析etcd 3的内部设计和实现细节的图书,本书以etcd 3为基础,详细分析了etcd的架构设计和实现细节,其中穿插介绍了etcd源码中涉及的基础知识,以及笔者在实践中的思考。
如何阅读本书
由于篇幅限制,本书并没有详细介绍Go语言的基础知识,但为了便于理解读者理解etcd的设计思想和实现细节,笔者介绍了一些必需且重要的基础内容,例如,Go语言提供的HTTP功能。
本书共8章,主要从源码角度深入剖析etcd的原理和实现。建议读者先阅读前两章,了解Raft协议之后,再开始学习etcd的工作原理和代码实现。
第1章简要介绍etcd的背景知识及其基本的数据模型,然后介绍如何搭建源码环境及相关的命令。
第2章从基本的Raft协议开始介绍,帮助读者了解Raft协议的背景知识、大致工作原理、如何处理各种异常场景,以及几个比较重要的扩展点。
第3章着重分析etcd中的raft模块对Raft协议的实现,etcd-raft模块是etcd的核心模块之一,GitHub上很多其他项目直接使用etcd-raft模块作为其Raft协议的底层实现。同时,本章也介绍了etcd自带的raftexample示例,帮助读者了解etcd-raft模块的基本使用方法,方便读者在实践中直接使用etcd-raft模块。
第4章简单介绍HTTP编程基础,以及etcd-rafthttp模块的工作原理和具体实现,其中涉及RoundTripper的基本原理、rafthttp.Transporter的实现及多种Handler的实现。
第5章介绍etcd中如何处理WAL日志文件和快照数据文件,其中分析了WAL结构体和Snapshotter的具体实现。
第6章详细分析etcd的底层存储,对etcd v2和etcd v3两个版本的存储都做了详细的介绍,不仅分析了底层的KV存储,还分析了watcher机制和Lessor的实现原理。
第7章重点介绍etcd服务端的内容,etcd服务端会组装并协调前面介绍的各个组件,并且在它们的基础上扩展出了更多的功能。
第8章主要介绍etcd客户端的相关内容,详细分析了v2和v3两个版本客户端的具体实现。
致谢
感谢我的母亲,谢谢您的付出和牺牲!
感谢白酱陪我看过一盏盏亮起的路灯,感谢三十在技术上提供的帮助。
感谢电子工业出版社博文视点的陈晓猛老师,是您的辛勤工作让本书的出版成为可能。同时还要感谢许多我不知道名字的幕后工作人员为本书付出的努力。
百里燊 [1]

温馨提示:
1、如果下载地址失效,请尽快反馈给我们,我们尽快修复。点此反馈>>
2、全站资源高清无密,课程百分百高清,完整,原画,包含所有的视频+素材+课件+源码,官方同步体验!每天更新,成为vip后可免费下载本站IT课程。点此办理会员>>
3、有任何问题,请咨询QQ:87887023
4、支持7*24小时自助购买,购买后自动发货,链接永久有效,自动更新
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

专注资源整合与知识分享
客服QQ

87887023

周一至周日9:00-23:00

反馈建议

点此进行反馈 kfs 在线QQ咨询
ftqrcode

扫描二维码关注我们

label_sm_90020

Powered by 优百课栈 X3.4© 2019-2025