由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高99元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
正版 分布式系统模式(英文版) 乌梅什·乔希 分布式系统架构里程碑著作 分布式架构 软件架构 系统模式 分布式系统模
¥ ×1
|
| |
| 商品名称: | 分布式系统模式(英文版) |
| 作 者: | [美] 乌梅什·乔希(Unmesh Joshi)
|
| 市 场 价: | 129.00
|
| ISBN 号: | 9787111777526
|
| 出版日期: |
|
| 页 数: | 410
|
| 开 本: |
|
| 出 版 社: | 机械工业出版社 |
|
第一部分 概述 第1章 分布式系统3 1.1 单服务器的限制3 1.2 业务逻辑和数据层分离5 1.3 数据分区 6 1.4 故障观察 7 1.5 复制:屏蔽故障 9 1.5.1 进程终止甚至崩溃 9 1.5.2 网络延迟 9 1.5.3 进程暂停 9 1.5.4 时钟不同步10 1.6 定义分布式系统10 1.7 模式方法10 第2章 模式概述 13 2.1 在单服务器上保持数据的弹性 14 2.2 竞争性更新 15 2.3 处理主节点失效 17 2.4 依托“世代时钟”解决多节点故障问题 21 2.5 符合仲裁机制方可提交日志记录 26 2.6 从节点基于高水位标记提交 29 2.7 主节点用消息队列来保持对众多客户端的响应 34 2.8 由从节点处理读请求以减轻主节点的负担 40 2.9 把大量数据分散到多节点分区 42 2.10 通过复制分区提高集群的弹性 45 2.11 跨分区维持一致性至少需要两个阶段 46 2.12 分布式系统的顺序不能依赖于系统时间戳 49 2.13 一致性核心可以管理数据集群的成员资格 58 2.14 用Gossip传播机制来管理分布式集群 62 第二部分 数据复制模式 第3章 预写日志 71 3.1 问题的提出 71 3.2 解决方案 71 3.2.1 实现考虑 73 3.2.2 在事务存储中的使用 74 3.2.3 与事件溯源对比 76 3.3 示例 76 第4章 日志分段 77 4.1 问题的提出 77 4.2 解决方案 77 4.3 示例 79 第5章 低水位标记 81 5.1 问题的提出 81 5.2 解决方案 81 5.2.1 基于快照的低水位标记 82 5.2.2 基于时间的低水位标记 83 5.3 示例 83 第6章 主节点与从节点 85 6.1 问题的提出 85 6.2 解决方案 85 6.2.1 主节点选举 86 6.2.2 仅有多数读/写不足以提供强一致性保证 91 6.3 示例 92 第7章 心跳机制 93 7.1 问题的提出 93 7.2 解决方案 93 7.2.1 小型集群:基于共识算法的系统 95 7.2.2 技术考虑 96 7.2.3 大型集群:基于Gossip协议 97 7.3 示例 98 第8章 多数法定节点数 99 8.1 问题的提出 99 8.2 解决方案 100 8.2.1 决定集群中服务器的数量 100 8.2.2 灵活的多数法定节点数 101 8.3 示例 102 第9章 世代时钟 103 9.1 问题的提出 103 9.2 解决方案 104 9.3 示例 107 第10章 高水位标记 109 10.1 问题的提出 109 10.2 解决方案 109 10.3 示例 115 第11章 Paxos 117 11.1 问题的提出 117 11.2 解决方案 117 11.2.1 协议流程 118 11.2.2 键值存储示例 127 11.2.3 弹性Paxos 132 11.3 示例 132 第12章 复制日志 133 12.1 问题的提出 133 12.2 解决方案 133 12.2.1 Multi-Paxos和Raft 134 12.2.2 复制客户端请求 135 12.2.3 主节点选举 141 12.2.4 技术考虑 150 12.2.5 推送与拉取 151 12.2.6 日志中有什么 151 12.3 示例 158 第13章 单一更新队列 159 13.1 问题的提出 159 13.2 解决方案 159 13.2.1 队列的选择 164 13.2.2 使用通道和轻量级线程 164 13.2.3 限流 165 13.2.4 其他考虑 166 13.3 示例 166 第14章 请求等待列表 167 14.1 问题的提出 167 14.2 解决方案 167 14.3 示例 173 第15章 幂等接收器 175 15.1 问题的提出 175 15.2 解决方案 175 15.2.1 使已保存的客户端请求过期 179 15.2.2 移除已注册的客户端 180 15.2.3 最多一次、至少一次和恰好一次操作 181 15.3 示例 181 第16章 由从节点处理读请求 183 16.1 问题的提出 183 16.2 解决方案 183 16.2.1 寻找最近的副本 184 16.2.2 连接断开或慢速从节点 187 16.2.3 读写一致性 188 16.2.4 线性化读 191 16.3 示例 191 第17章 版本化值 193 17.1 问题的提出 193 17.2 解决方案 193 17.2.1 版本化键的排序 194 17.2.2 读多个版本 197 17.2.3 MVCC和事务隔离性 199 17.2.4 使用类似RocksDB的存储引擎 200 17.3 示例 201 第18章 版本向量 203 18.1 问题的提出 203 18.2 解决方案 203 18.2.1 版本向量比较 205 18.2.2 在键值存储中使用版本向量 207 18.3 示例 216 第三部分 数据分区模式 第19章 固定分区 219 19.1 问题的提出 219 19.2 解决方案 220 19.2.1 选择哈希函数 221 19.2.2 将分区映射到集群节点 222 19.2.3 替代方案:分区数量与节点数量成比例 236 19.3 示例 241 第20章 键范围分区 243 20.1 问题的提出 243 20.2 解决方案 244 20.2.1 预定义键范围 244 20.2.2 示例场景 247 20.2.3 自动分割范围 249 20.3 示例 255 第21章 两阶段提交 257 21.1 问题的提出 257 21.2 解决方案 257 21.2.1 锁和事务隔离性 261 21.2.2 提交和回滚 268 21.2.3 示例场景 273 21.2.4 使用版本化值 279 21.2.5 使用复制日志 291 21.2.6 故障处理 291 21.2.7 异构系统中的事务 297 21.3 示例 297 第四部分 分布式时间的模式 第22章 Lamport时钟 301 22.1 问题的提出 301 22.2 解决方案 301 22.2.1 因果关系、时间和先后关系 302 22.2.2 键值存储示例 303 22.2.3 部分有序 305 22.2.4 单个主节点更新值 306 22.3 示例 307 第23章 混合时钟 309 23.1 问题的提出 309 23.2 解决方案 309 23.2.1 使用混合时钟的多版本存储 312 23.2.2 使用时间戳读取值 314 23.2.3 为分布式事务分配时间戳 314 23.3 示例 316 第24章 时钟约束等待 317 24.1 问题的提出 317 24.2 解决方案 318 24.2.1 读请求重启 322 24.2.2 使用时钟约束API 325 24.3 示例 332 第五部分 集群管理模式 第25章 一致性核心 337 25.1 问题的提出 337 25.2 解决方案 337 25.2.1 元数据存储 339 25.2.2 处理客户端交互 339 25.3 示例 342 第26章 租约 345 26.1 问题的提出 345 26.2 解决方案 345 26.2.1 将租约附加到键值存储中的键上 351 26.2.2 处理主节点失效 353 26.3 示例 354 第27章 状态监控 355 27.1 问题的提出 355 27.2 解决方案 355 27.2.1 客户端实现 356 27.2.2 服务器端实现 356 27.2.3 处理连接失败 359 27.3 示例 362 第28章 Gossip传播 363 28.1 问题的提出 363 28.2 解决方案 363 28.2.1 避免不必要的状态交换 368 28.2.2 选择Gossip节点的标准 371 28.2.3 群组成员资格和故障检测 372 28.2.4 处理节点重启 372 28.3 示例 373 第29章 应急主节点 375 29.1 问题的提出 375 29.2 解决方案 375 29.2.1 向所有现有成员发送成员资格更新 379 29.2.2 一个示例场景 382 29.2.3 处理缺失的成员资格更新 384 29.2.4 故障检测 385 29.2.5 与主从模式的比较 392 29.3 示例 392 第六部分 节点间通信模式 第30章 单套接字通道 395 30.1 问题的提出 395 30.2 解决方案 395 30.3 示例 397 第31章 请求批处理 399 31.1 问题的提出 399 31.2 解决方案 399 31.3 示例 404 第32章 请求管道 405 32.1 问题的提出 405 32.2 解决方案 405 32.3 示例 408 参考文献 409 |
|
本书深入剖析了主流开源分布式系统模式,包括模式中的常见问题和解决方案,并展示了Kafka和Kubernetes等系统的真实代码示例,以帮助企业架构师和开发人员更好地理解这些系统的工作原理,以及分布式系统的设计原则,为应对数据存储在多台服务器上时可能出现的各种问题做好准备。 通过阅读本书,读者将: 了解什么是分布式系统,以及为什么需要分布式系统。 更深入地理解分布式系统模式设计所面临的挑战,以选择合适的云服务和产品。 理解包括数据库、内存数据网格、消息代理,以及各种云服务在内的系统的实现原理。 自信地浏览开源代码库,并清晰地看到模式和解决方案如何映射到如Kafka和Kubernetes这样的真实世界系统中。 本书对于分布式架构工程师以及想要构建自己的分布式系统的开发者来说,是一本有价值的参考书。 |
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格
