etcd工作笔记:架构分析、优化与最佳实践
全新正版未拆封
¥
42.53
4.3折
¥
99
全新
库存2件
作者朱荣鑫;刘峰
出版社中国铁道出版社
出版时间2021-10
版次1
装帧其他
上书时间2024-10-14
商品详情
- 品相描述:全新
图书标准信息
-
作者
朱荣鑫;刘峰
-
出版社
中国铁道出版社
-
出版时间
2021-10
-
版次
1
-
ISBN
9787113282219
-
定价
99.00元
-
装帧
其他
-
开本
其他
-
纸张
胶版纸
-
页数
368页
-
字数
475.000千字
- 【内容简介】
-
近年来,容器和云原生生态蓬勃发展。如何实现数据分布式、一致性存储,确保云原生环境的可扩展性和高可用性,是亟须解决的现实问题。云计算时代,etcd 将成为云原生和分布式系统的基石,三个关键因素是分布式一致性raft 协议、Go语言和生态。正是因为etcd 在云原生时代的火热,越来越多的公司在系统服务中新引入etcd,或者替代原有的类似组件,如ZooKeeper、Consul、Eureka 等。本书的内容也正是聚焦于如何正确部署和运维etcd 集群,理解etcd 实现的原理并对etcd 集群进行优化,以及在开发层面如何正确调用etcd 客户端API 接口实现一致性存储等功能。
- 【作者简介】
-
朱荣鑫,毕业于南京大学,硕士研究生学历,先后就职于Tradeshift和美团点评,任开发工程师;目前就职于思目创意(南京);任基础架构工程师。2018年10月出版《Spring Cloud微服务架构进阶》(机械工业出版社);2020年4月出版《Go语言高并发与微服务实战》(中国铁道出版社有限公司)。刘峰,博士研究生学历,就职于南京大学,教授,长期从事分布式系统、计算机网络方面的研究,教授相关课程。主持及参与多项纵向与横向项目,发表论文20多篇,主编了国家十一五规划教材。
- 【目录】
-
第1章 云原生架构概述1.1 云计算的前世今生 11.1.1 云计算的鼻祖:虚拟化技术 11.1.2 虚拟机的市场化应用 21.1.3 容器化与容器编排的兴起 31.1.4 云计算的深远影响 51.2 什么是云原生架构 51.2.1 云原生出现的背景 51.2.2 云原生解决了哪些问题 61.2.3 不断更新的云原生定义 71.2.4 云原生与12因素 91.3 云原生架构的挑战 101.3.1 分布式系统的问题 101.3.2 一致性问题(拜占庭将军问题) 111.4 分布式一致性理论 121.4.1 三选二的CAP理论 131.4.2 柔性事务BASE理论 171.5 分布式一致性协议 181.5.1 二阶段提交协议(2PC) 191.5.2 三阶段提交协议 211.5.3 经典的Paxos算法 241.5.4 简单易懂的raft算法 271.5.5 分布式一致性协议小结 321.6 云原生时代为什么推荐etcd 321.6.1 相关组件多维度对比 321.6.2 etcd与ZooKeeper的比较 331.6.3 etcd与Consul的比较 341.6.4 etcd与NewSQL的比较 351.7 本章小结 35第2章 初识etcd2.1 etcd介绍 362.1.1 etcd的特性 372.1.2 etcd v3的架构解析 372.2 etcd使用场景 392.2.1 键值对存储 402.2.2 服务注册与发现 402.2.3 消息发布与订阅 412.2.4 分布式通知与协调 422.2.5 分布式锁 422.3 etcd安装与使用 432.3.1 etcd常用的术语 432.3.2 etcd单机安装部署 442.4 etcd集群部署 462.4.1 静态方式启动etcd集群 472.4.2 docker启动etcd集群 482.4.3 动态发现启动etcd集群 502.4.4 DNS自发现模式 532.5 etcdctl的实践应用 562.5.1 常用命令介绍 562.5.2 数据库操作 592.5.3 集群配置查询 652.6 etcd安全 652.6.1 TLS与SSL 652.6.2 进行TLS加密实践 662.7 本章小结 71第3章 etcd核心API v33.1 通信接口标准:proto3 733.1.1 定义消息类型 733.1.2 添加更多消息类型 743.1.3 proto文件编译后会生成什么 753.2 核心gRPC API接口 753.3 键值对增删改查 773.3.1 Range查询方法 783.3.2 Put写入键值对 803.3.3 DeleteRange删除键值对方法 813.3.4 Txn事务方法 813.3.5 Compact压缩方法 843.4 Watch监视服务 853.4.1 事件和监视流 853.4.2 Watch Service定义 863.5 Lease租约服务 883.5.1 LeaseGrant创建租约 893.5.2 LeaseRevoke撤销租约 903.5.3 LeaseKeepAlive续租租约 903.5.4 LeaseTimeToLive获取租约信息 913.6 Lock分布式锁 913.6.1 Lock加锁 923.6.2 Unlock释放锁 933.7 Election选主服务 933.7.1 Campaign方法 943.7.2 Proclaim方法 953.7.3 Leader与Observe方法 953.7.4 Resign方法 963.8 本章小结 97第4章 etcd存储原理与机制4.1 etcd整体架构 984.1.1 etcd项目结构 984.1.2 etcd架构总览 994.2 etcd交互总览 1014.3 读与写的处理过程 1044.3.1 读操作的过程 1044.3.2 写操作的过程 1074.4 WAL日志与快照备份 1104.4.1 WAL日志 1104.4.2 快照备份 1124.4.3 WAL存储 1144.4.4 WAL日志打开 1194.4.5 WAL文件读取 1214.5 Backend存储 1244.5.1 BoltDB相关概念 1244.5.2 Backend与BackendTx接口 1254.7 本章小结 129第5章 etcd如何实现分布式一致性5.1 raft共识算法基础 1305.1.1 raft算法概述 1305.1.2 raft算法的三种状态 1315.2 使用raftexample 1335.3 etcd-raft库解析 1345.3.1 etcd-raft对外提供的接口 1345.3.2 raft库日志存储相关结构 1355.3.3 etcd-raft状态机定义与状态转换 1385.3.4 raft消息定义 1395.3.5 常见消息类型的使用场景 1415.4 Leader选举流程 1495.4.1 发起选举 1495.4.2 参与选举 1505.4.3 选举可能出现的情况 1505.4.4 新选举的Leader与Follower同步数据 1515.5 日志复制 1545.6 安全性 1565.7 本章小结 158第6章 MVCC多版本控制与事务的实现原理6.1 etcd多版本控制 1596.1.1 什么是MVCC 1596.1.2 etcd MVCC模块的使用方式 1606.1.3 etcd MVCC模块的实现 1616.1.4 MVCC写过程解析 1636.1.5 MVCC读过程解析 1666.2 etcd的事务 1686.2.1 什么是事务 1686.2.2 事务的流程 1696.2.3 etcd事务实践案例:基于STM转账业务 1706.2.4 STM实现细节 1736.3 etcd事务隔离级别 1756.3.1 ReadCommitted已提交读 1766.3.2 RepeatableReads可重复读 1776.3.3 Serializable串行读 1776.3.4 SerializableSnapshot串行化快照读 1786.4 Backend后端实现细节 1786.4.1 只读事务 1806.4.2 读写事务 1816.5 本章小结 184第7章 etcd的Watch机制与租约机制7.1 Watch机制 1867.1.1 Watch用法 1877.1.2 watchableStore存储 1897.1.3 syncWatchers 同步监听 1907.1.4 客户端监听事件 1927.1.5 服务端处理监听 1967.1.6 异常流程处理 2007.2 Lease租约 2027.2.1 如何使用租约 2027.2.2 Lease架构 2047.2.3 Lessor接口 2057.2.4 Lease与lessor结构体 2067.2.5 核心方法解析 2087.3 本章小结 213第8章 etcd服务端8.1 etcd服务端启动总览 2148.1.1 服务端启动示例 2148.1.2 etcd整体架构分析 2168.2 服务端初始化过程 2188.2.1 NewServer创建实例 2198.2.2 启动backend 2208.2.3 raft启动过程分析 2218.2.4 rafthttp启动 2238.3 启动etcd服务端 2258.4 索引的恢复 2298.5 服务端处理请求 2328.5.1 gRPCAPI 2338.5.2 接收与处理读请求 2338.5.3 接收与处理写请求 2378.6 本章小结 239第9章 etcd clientv3客户端的使用9.1 在项目中引入etcd clientv3客户端 2409.2 etcd客户端初始化 2429.3 kv接口定义 2449.4 键值对的基本操作 2469.4.1 键值对存储 2469.4.2 查询键值对 2479.4.3 删除键值对 2499.4.4 数据空间压缩 2509.4.5 实践案例:客户端键值对操作 2519.5 客户端的Op操作 2529.6 客户端租约Lease的定义与实践 2549.6.1 租约的定义 2549.6.2 租期的使用 2569.6.3 自动续租 2589.6.4 租约的续租 2589.7 客户端Watch机制的定义与使用 2599.7.1 Watch相关接口定义 2599.7.2 watcher接口的实现 2619.7.3 实践案例:客户端实现Watch监视功能 2659.8 etcd中的事务 2679.9 综合案例:通过Txn实现分布式锁 2709.9.1 基于数据库实现分布式锁 2719.9.2 基于ZooKeeper实现分布式锁 2729.9.3 基于缓存实现分布式锁 2739.10 本章小结 276第10章 etcd集群运维10.1 集群运行时重配置 27710.1.1 使用场景介绍 27710.1.2 更新成员 27810.1.3 删除成员 27910.1.4 添加新成员 28010.1.5 增加一个learner成员 28210.1.6 严格重配置检查模式 (-strict-reconfig-check) 28410.2 运行时重配置的设计及注意点 28410.2.1 两阶段配置变更设计 28410.2.2 集群重配置注意点 28510.3 集群配置避坑指南 28510.4 调优 28810.4.1 etcd整体分析 28810.4.2 推荐的服务器配置 28810.4.3 etcd调优 29010.5 故障恢复 29310.6 高可用之定期维护 29610.7 etcd服务监控 30010.8 本章小结 305第11章 etcd提供的扩展功能11.1 etcd网关模式:构建etcd集群的门户 30711.1.1 什么时候使用etcd网关模式 30711.1.2 etcd网关模式实践 30811.2 gRPC-Gateway:为非gRPC的客户端提供HTTP接口 30911.2.1 etcd版本与gRPC-Gateway接口对应的关系 30911.2.2 键值对读写操作 30911.2.3 watch键值 31011.2.4 etcd事务的实现 31111.2.5 HTTP 请求的安全认证 31211.3 gRPC代理模式:实现可伸缩的etcd API 31411.3.1 gRPC proxy 基本应用 31411.3.2 客户端端点同步 31511.3.3 可伸缩的watch API 31611.3.4 可伸缩的lease API 31711.3.5 命名空间的实现 31811.3.6 其他扩展功能 31911.4 本章小结 320第12章 etcd在微服务和云原生架构中的应用12.1 微服务架构中的服务注册与发现 32212.2 原生实现服务注册与发现 32312.2.1 user-service的实现 32412.2.2 客户端调用 32612.2.3 运行结果 32912.3 go-micro集成etcd 33012.3.1 定义消息格式 33012.3.2 server服务端 33312.3.3 client调用 33412.3.4 运行结果 33512.4 Go-kit集成etcd 33612.4.1 定义消息格式 33612.4.2 user服务 33712.4.3 客户端调用 33912.4.4 运行结果 34112.5 etcd在Kubernetes中如何保证容器的调度 34212.5.1 什么是Kubernetes 34212.5.2 etcd在Kubernetes中的部署 34412.5.3 Kubernetes部署user服务 34512.6 创建Pod流程分析 34812.6.1 etcd如何存储Kubernetes的数据 34912.6.2 APIServer策略层的处理 35012.6.3 Watch机制 35012.7 本章小结 351
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价