如何精通云原生分布式存储基石 Etcd?
互联网应用经历了从早期单一架构到垂直架构,再到分布式架构的技术发展过程。在业务体系不断发展变化,用户体量和性能要求远非传统行业所能比拟的当下,越来越多的公司跨入了分布式、云原生架构的行列,分布式架构成为主流趋势。
但分布式架构系统面临着一些与生俱来的问题,比如部署复杂、响应时间长、运维复杂等,其中最根本的是多个节点之间的数据共享问题。面对这些问题,你可以选择自己实现一个可靠的共享存储来同步信息,或者是依赖一个可靠的共享存储服务。
至于可靠的共享存储服务,etcd是一个优秀的可选项。etcd是一款分布式存储中间件,使用Go语言编写,并通过raft一致性算法处理和确保分布式一致性,解决了分布式系统中数据一致性的问题。
此外,由于etcd中涉及了数据一致性、多版本并发控制、Watch监控、磁盘I/O读写等知识点,深入学习etcd可以帮助我们从开源项目中学习底层原理,进一步提高分布式架构设计的能力。
除了分布式架构中的应用,etcd 还是目前非常热门的云原生存储组件,它自2018年底作为孵化项目加入CNCF(云原生计算基金会),并于2020年11月成功“毕业”。
etcd 作为云原生架构中重要的基础组件,各个微服务之间通过etcd保证调用的可用性和正确性。其他许多知名项目(包括Kubernetes、CoreDNS和TiKV等)也都依赖etcd来实现可靠的分布式数据存储,它的成功可见一斑。
掌握云原生存储的基石组件,这里就不得不推荐一本讲 etcd 原理与实战的图书《etcd工作笔记:架构分析、优化与最佳实践》。作者将自己多年的 etcd 相关的工作经验进行总结,编写而成。
etcd图书如果你对分布式系统的实现原理,对分布式组件的实现细节不清楚。这本书可以很好的填补分布式系统设计的空白和进一步拓展你的思维方向。
这本书写了啥?
通过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 完成容器的调度。
这本书的作者
朱荣鑫,微服务方面技术专家,曾就职于外企和大型互联网公司。对云原生、大型分布式系统有多年深入的实践经验。出版图书《Go 语言微服务高并发实战》,线上专栏课程《etcd原理与实战》。
刘峰,博士,任职于南京大学,长期从事分布式系统,计算机网络方面的研究,主持和参与多项国家纵向和横向课题,于阿里云等公司进行了多项分布式系统相关的产研合作。
想直接购书的可以通过上面的二维码去京东进行8.7折优惠购买。