从云计算、大数据平台到区块网络,分布式系统已成为现代计算基础设施的基石。然而,分布式系统的设计与发涉及通信、同步、一致性、容错等复杂问题,技术门槛高、知识体系庞杂。全面掌握分布式系统的核心原理与设计范式,并将其应用于真实系统,已成为计算机科学与工程领域的学生及从业者需要具备的核心能力。<br />本书由分布式系统领域的两位顶尖专家联袂撰写,系统阐述了分布式系统的原理、概念与核心技术。全书涵盖通信、程、命名、同步、一致性与复制、容错、安全等七大核心主题,并介绍了基于对象的分布式系统、分布式文件系统、基于文档的分布式系统及基于协作的分布式系统等实际系统。<br />本书特色:<br />原理与实例并重:在讨论通用原理时,始终紧密结合现有分布式系统的实例,帮助读者理解理论如何落地于真实系统。<br />紧跟技术前沿:反映分布式系统领域的发展现状,所有Python代码更新至Python 3,channel软件包全面修订简化。<br />灵活的学习设计:设有多处“框注”模块,便于读者在初次阅读时有选择性地跳过部分内容。<br />丰富的配套资源:配套网站(www.distributed-systems.net)提供代码示例、图表和PPT等。
售 价:¥
纸质售价:¥101.00购买纸书
6.5
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐

前言
第1章 简介
1.1 从网络系统到分布式系统
1.1.1 分布式与去中心化系统
1.1.2 区分二者为何重要
1.1.3 学习分布式系统
1.2 设计目标
1.2.1 资源共享
1.2.2 分布透明性
1.2.3 开放性
1.2.4 可靠性
1.2.5 安全性
1.2.6 可扩展性
1.3 分布式系统的简单分类
1.3.1 高性能分布式计算
1.3.2 分布式信息系统
1.3.3 普适系统
1.4 陷阱
1.5 小结
第2章 架构
2.1 架构风格
2.1.1 分层架构
2.1.2 面向服务的架构
2.1.3 发布-订阅架构
2.2 中间件和分布式系统
2.2.1 中间件组织
2.2.2 可修改中间件
2.3 分层系统架构
2.3.1 简单的客户端-服务器架构
2.3.2 多层架构
2.3.3 示例:网络文件系统
2.3.4 示例:Web
2.4 对称分布式系统架构
2.4.1 结构化对等系统
2.4.2 非结构化对等系统
2.4.3 分层组织的对等网络
2.4.4 示例:BitTorrent
2.5 混合系统架构
2.5.1 云计算
2.5.2 边缘-云架构
2.5.3 区块链架构
2.6 小结
第3章 进程
3.1 线程
3.1.1 线程简介
3.1.2 分布式系统中的线程
3.2 虚拟化
3.2.1 虚拟化原理
3.2.2 容器
3.2.3 虚拟机与容器的比较
3.2.4 虚拟机在分布式系统中的应用
3.3 客户端
3.3.1 网络用户界面
3.3.2 虚拟桌面环境
3.3.3 用于分布式透明性的客户端软件
3.4 服务器
3.4.1 常规设计问题
3.4.2 对象服务器
3.4.3 示例:Apache Web服务器
3.4.4 服务器集群
3.5 代码迁移
3.5.1 迁移代码的原因
3.5.2 代码迁移模型
3.5.3 异构系统中的迁移
3.6 小结
第4章 通信
4.1 基础
4.1.1 分层协议
4.1.2 通信的类型
4.2 远程过程调用
4.2.1 基本的RPC操作
4.2.2 参数传递
4.2.3 基于RPC的应用支持
4.2.4 RPC的变体
4.3 面向消息的通信
4.3.1 使用套接字的简单瞬时消息
4.3.2 高级瞬时消息
4.3.3 面向消息的持久通信
4.3.4 示例:高级消息队列协议
4.4 多播通信
4.4.1 基于树的应用层多播
4.4.2 基于泛洪的多播
4.4.3 基于gossip的数据传播
4.5 小结
第5章 协调
5.1 时钟同步
5.1.1 物理时钟
5.1.2 时钟同步算法
5.2 逻辑时钟
5.2.1 Lamport逻辑时钟
5.2.2 向量时钟
5.3 互斥
5.3.1 概述
5.3.2 中心化算法
5.3.3 分布式算法
5.3.4 令牌环算法
5.3.5 去中心化算法
5.3.6 示例:ZooKeeper的简单锁定
5.4 选举算法
5.4.1 欺负算法
5.4.2 环算法
5.4.3 示例:ZooKeeper中的领导选举
5.4.4 示例:Raft中的领导选举
5.4.5 大规模系统中的选举
5.4.6 无线环境中的选举
5.5 基于gossip的同步
5.5.1 聚合
5.5.2 对等采样服务
5.5.3 基于gossip的覆盖网络构建
5.5.4 安全的gossip
5.6 分布式事件匹配
5.6.1 中心化实现
5.6.2 安全的发布-订阅解决方案
5.7 位置系统
5.7.1 全球定位系统
5.7.2 当GPS不可用时
5.7.3 节点的逻辑位置
5.8 小结
第6章 命名
6.1 名字、标识符和地址
6.2 扁平化命名
6.2.1 简单解决方案
6.2.2 基于宿主位置的方法
6.2.3 分布式哈希表
6.2.4 分层方法
6.2.5 安全的扁平化命名
6.3 结构化命名
6.3.1 名字空间
6.3.2 名字解析
6.3.3 名字空间的实现
6.3.4 示例:域名系统
6.3.5 示例:网络文件系统
6.4 基于属性的命名
6.4.1 目录服务
6.4.2 分层实现:LDAP
6.4.3 去中心化的实现
6.5 命名数据网络
6.5.1 概述
6.5.2 路由
6.5.3 命名数据网络中的安全性
6.6 小结
第7章 一致性和复制
7.1 复制简介
7.1.1 复制的原因
7.1.2 作为扩展技术的复制
7.2 以数据为中心的一致性模型
7.2.1 一致的操作顺序
7.2.2 最终一致性
7.2.3 持续一致性
7.3 以客户端为中心的一致性模型
7.3.1 单调读
7.3.2 单调写
7.3.3 读自己的写
7.3.4 写跟随读
7.3.5 示例:ZooKeeper中以客户端为中心的一致性
7.4 副本管理
7.4.1 寻找最佳服务器位置
7.4.2 内容复制和放置
7.4.3 内容分发
7.4.4 管理复制对象
7.5 一致性协议
7.5.1 顺序一致性:基于主服务器的协议
7.5.2 顺序一致性:复制-写协议
7.5.3 缓存一致性协议
7.5.4 实现持续一致性
7.5.5 实现以客户端为中心的一致性
7.6 示例:Web中的缓存和复制
7.7 小结
第8章 容错
8.1 容错简介
8.1.1 基本概念
8.1.2 失效模型
8.1.3 通过冗余屏蔽失效
8.2 进程弹性
8.2.1 进程组的弹性
8.2.2 失效屏蔽和复制
8.2.3 崩溃失效的故障系统中的共识
8.2.4 示例:Paxos算法
8.2.5 具有任意失效的故障系统中的共识
8.2.6 区块链系统中的共识
8.2.7 实现容错的一些限制
8.2.8 失效检测
8.3 可靠的客户端-服务器通信
8.3.1 点对点通信
8.3.2 出现失效时的RPC语义
8.4 可靠多播通信
8.4.1 可靠多播通信简介
8.4.2 可靠多播的可扩展性
8.4.3 原子多播
8.5 分布式提交
8.6 恢复
8.6.1 恢复简介
8.6.2 检查点
8.6.3 消息日志
8.7 小结
第9章 安全
9.1 安全简介
9.1.1 安全威胁、策略和机制
9.1.2 设计问题
9.2 密码学
9.2.1 基础
9.2.2 对称和非对称密码系统
9.2.3 哈希函数
9.2.4 密钥管理
9.3 身份验证
9.3.1 身份验证简介
9.3.2 身份验证协议
9.4 分布式系统中的信任
9.4.1 面临任意失效时的信任
9.4.2 信任一个实体
9.4.3 信任一个系统
9.5 授权
9.5.1 访问控制中的一般问题
9.5.2 基于属性的访问控制
9.5.3 委托
9.5.4 去中心化授权:示例
9.6 监控
9.6.1 防火墙
9.6.2 入侵检测:基础
9.6.3 协同入侵检测
9.7 小结
参考文献
推荐阅读
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜