本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正
商品基本信息,请以下列介绍为准 | |
商品名称: | etcd工作笔记(架构分析优化与实践)/Go语言与云原生系列 |
作者: | 编者_朱荣鑫//刘峰|责编_荆波 |
定价: | 99.0 |
出版社: | 中国铁道出版社 |
出版日期: | 2021-10-01 |
ISBN: | 9787113282219 |
印次: | 1 |
版次: | 1 |
装帧: | |
开本: | 16开 |
内容简介 | |
年来,容器和云原生生态蓬勃发展。如何实现数据分布式和一致性存储,确保云原生环境的可扩展性和高可用性,是亟待解决的现实问题。 云计算时代,etcd将成为云原生和分布式系统的基石,三个关键因素是分布式一致性raft协议、Go语言和生态。本书的内容聚焦于如何正确部署和运维etcd集群,理解etcd实现的原理并对etcd集行优化,以及在开发层面如何正确调用etcd客户端API接口实现一致性存能。 |
目录 | |
第1章 云原生架构概述 1.1 云计算的前世今生 1.1.1 云计算的鼻祖:虚拟化技术 1.1.2 虚拟机的市场化应用 1.1.3 容器化与容器编排的兴起 1.1.4 云计算的深远影响 1.2 什么是云原生架构 1.2.1 云原生出现的背景 1.2.2 云原生解决了哪些问题 1.2.3 不断更新的云原生定义 1.2.4 云原生与12因素 1.3 云原生架构的挑战 1.3.1 分布式系统的问题 1.3.2 一致性问题(拜占庭将军问题) 1.4 分布式一致性理论 1.4.1 三选二的CAP理论 1.4.2 柔性事务BASE理论 1.5 分布式一致性协议 1.5.1 二阶段提交协议(2PC) 1.5.2 三阶段提交协议 1.5.3 经典的Paxos算法 1.5.4 简单易懂的raft算法 1.5.5 分布式一致性协议小结 1.6 云原生时代为etcd 1.6.1 相关组件多维度对比 1.6.2 etcd与ZooKeeper的比较 1.6.3 etcd与Consul的比较 1.6.4 etcd与NewSQL的比较 1.7 本章小结 第2章 初识etcd 2.1 etcd介绍 2.1.1 etcd的特性 2.1.2 etcd v3的架构解析 2.2 etcd使用场景 2.2.1 键值对存储 2.2.2 服务注册与发现 2.2.3 消息发布与订阅 2.2.4 分布式通知与协调 2.2.5 分布式锁 2.3 etcd安装与使用 2.3.1 etcd常用的术语 2.3.2 etcd单机安装部署 2.4 etcd集群部署 2.4.1 静态方式启动etcd集群 2.4.2 docker启动etcd集群 2.4.3 动态发现启动etcd集群 2.4.4 DNS自发现模式 2.5 etcdctl的实践应用 2.5.1 常用命令介绍 2.5.2 数据库r/> 2.5.3 集群配置查询 2.6 etcd 2.6.1 TLS与SSL 2.6.2 行TLS加密实践 2.7 本章小结 第3章 etcd核心API v3 3.1 通信接口标准:proto3 3.1.1 定义消息类型 3.1.2 添加更多消息类型 3.1.3 proto文件编译后会生成什么 3.2 核心gRPC API接口 3.3 键值对增删改查 3.3.1 Range查询方法 3.3.2 Put写入键值对 3.3.3 DeleteRange删除键值对方法 3.3.4 Txn事务方法 3.3.5 Compact压缩方法 3.4 Watch监视服务 3.4.1 事件和监视流 …… 第4章 etcd存储原理与机制 第5章 etcd如何实现分布式一致性 第6章 MVCC多版本控制与事务的实现原理 第7章 etcd的Watch机制与租约机制 第8章 etcd服务端 第9章 etcd clientv3客户端的使用 第10章 etcd集群运维 第11章 etcd提供的能 第12章 etcd在微服务和云原生架构中的应用 |
前言 | |
Kubernetes集群所提出的强一致性要求。” etcd不断提高的普及率、开放的治理以及完能成熟度使它在云原生时代大受青睐,也因此被越来越多的公司在系统服务中引入,甚至替代原有的类似组件(如ZooKeeper、Consul、Eureka等)。目前,etcd已被许多公司用于生产括、、百度、Google等。 本书主要内容 当前,云原生架构逐步成为系统架构的主流,由于其可提升产品的开发迭代效率,降低运维和硬件成本;因此企业要不要上“云”已不再是一个艰难的选择题,而成为必然趋势。etcd作为分布式架构下的一款优秀组件,在云原生时代更是大放异彩,成为Kubernete台默认的容器注册与发现组件。 希望通过etcd学组件的“道”,掌握学习之道会在后续的自我提升中发挥长期价值。无论在将来的面试还是开发中,切中分布式系统开发的要点,并将原理和应用结合起来,才能充分体现个人的核心竞争力。 本书围绕etcd组件,从基础知识点到底层原理全面深入地展开介绍,主含如下的三个模块。 (1)基础概念与操作篇 首先浅谈云原生架构背景,分布式系统中如何保证一致性;接着介绍etcd是一款什么样的组件、etcd相关的特性、应用场景、部署的方式,括了客户端命令行工具的使用以及etcd通信加密TLS。初步了解etcd的这些基本使用以及核心API,为后面的学习打下基础。 (2)etcd实现原理与关键技术篇 介绍etcd的工作方式与内部实现原理,并介绍etcd的etcd-raft模块、WAL日志与快照备份、多版本控制MVCC、backend存储、事务实现、Watch和Lease机制等,后梳理etcd Server的启动流程,以及如何处理客户端请求。通过这一模块的学习,可以帮助我们从原理层面深入了解etcd的工作机制以及整体架构,同时将有助于后续二次开发或者排查遇到的问题。 (3)实践案例篇 在掌握了etcd相关知识点的情况下,在应用实践部分将会带你学习etcd clientv3的具体应用括如何基于etcd实现分布式锁应用,以及如何在微服务中集成etcd作为服务注册与发现中心;后我们会分析在Kubernetes中如何基于etcd完成容器的调度。 适合哪些读者 服务端开发的工程师,往往会使用部分分布式组件,但是对分布式系统的实现原理,对分,布式组件的实现细节不清楚。这种情况阻碍了他们完成高质量的开发任务、提升个人能力以及职业晋升。etcd是云原生架构下的重要组件,从学习etcd开始,在了解etcd的基础上更容易快速熟悉分布式系统实现的一些细节和原理。 本书适合具有分布式基础,且正在从事分布式系统开发的工程师、微服务、分布式系统的架构师和运维人员学习,适合正在基于etc行相关实践和二次开发的工程师。对云原生架构感兴趣的同学通过本书也可以学习到分布式系统的原理与实践。建议读者在阅读本书时首先了解基本的Go语言语本书同系列其他图书《深入Go语言开发与实践》以及《Go语言高并发与微服务实战》。 源代码获取 纸上得来终觉浅,绝知此事要躬行。 毋庸置疑,读者学习和掌握etcd的目的是提升实践工作的技能,因此笔者希望本书的读者在阅读书中知识点并理解作者实践思路的同时,将书中的实现代码和示例代码根据自己的理解程行实践操作,这样可以更透彻地了解书中所讲知识,并通过动手实践检查自己的不足,深刻领会源码内涵;因此笔者将书中源代码整理,倾囊相送;读者可以通过如下的地址获取使用: https://github.com/longjoy/etcd-book-code 作者团队与致谢 本书由朱荣鑫、刘峰共同书由朱荣鑫统稿。本书的完成需要感谢很多朋友和同行的倾力帮助,感谢笔者的好友张天和黄迪璇在本书撰写前后提供了很多内容组织方面的建议;感谢公众号的读者袁洋与王金怀利用休息时间帮忙审稿,提出了宝贵的意见,帮一步完善了本书的内容,给了笔者很多实质性的指导;感谢拉勾教台以及编辑佟可欣老师,其出品的《etcd原理与实践》课程帮助笔者积累了大量etcd写作的素材,本书也是对课程内容一步完善。 写书是一件枯燥的事情,一本书从想法、策划到出版不易,编辑老师给了笔者很大的信心和帮助。在内容和结构组织上,笔者同本书责任编辑荆波老行了多次讨论和校正,因此感谢中国铁道出版社有限公司为本书的出版所作的努力。, 写作背景 互联网应用经历了从早期单一架构到垂直架构,再到分布式架构的技术发展过程。在业务体系不断发展变化,用户体量和性能要求远非传统行业所能比拟的当下,越来越多的公司跨入了分布式、云原生架构的行列,分布式架构成为主流趋势。 但分布式架构系统面临着一些与生俱来的问题,比如部署复杂、响应时间长、运维复杂等,其中根本的是多个节点之间的数据共享问题。面对这些问题,你可以选择自己实现一个可靠的共享存储来同步信息,或者是依赖一个可靠的共享存储服务。 至于可靠的共享存储服务,etcd是一个优秀的可选项。etcd是一款分布式存储中间件,使用Go语言编写,并通过raft一致性算法处理和确保分布式一致性,解决了分布式系统中数据一致性的问题。 etcd在分布式架构和云原生时代落地实践;作为一款分布式、可靠的键值存储组件,etcd常用于微服务架构中的服务注册与发现中心,相较于ZooKeeper部署更简单,而且具有数据持久化、支持SSL客户端认证的优势。 此外,由于etcd中涉及了数据一致性、多版本并发控制、Watch监控、磁盘I/O读写等知识点,深入学习etcd可以帮助我们从开源项目中学习底层原理一步提高分布式架构设计的能力。 除了分布式架构中的应用,etcd还是目前热门的云原生存储组件,它自2018年底作为孵化项目加入CNCF(云原生计算基金会),并于2020年11“毕业”。 我们都知道,上“云”的过程必然是曲折的。以笔者所在的在线教育行业为例,从原有的单体业务改造到逐步替换成云原生架构,其中花费的人力、时间成本都很大,这不仅与实际的业务复杂度、升级的决心有关,更关乎技术复杂度,在线课程直播场景甚至要求架构实现高性能、高并发和高可用性,这些都远远超出传统单体应用的设计和开发范畴。 etcd作为云原生架构中重要的基础组件,各个微服务之间通过etcd保证调用的可用性和正确性。其他许多知名项目括Kubernetes、CoreDNS和TiKV等)也都依赖etcd来实现可靠的分布式数据存储,它可见一斑。 IBM开放技术高级软件工程师兼etcd维护者Sahdev Zala也指出:“etcd在提供分布式键-值存储方面发挥着关键作用。其能不仅具有很高的可用性,而且能够满足大规模 |