计算机
类型
7.8
豆瓣评分
可以朗读
语音朗读
293千字
字数
2021-11-01
发行日期
展开全部
主编推荐语
本书从软件结构的发展历史入手,描述了分布式架构的特性和存在的问题,并围绕这些问题展开了分析和实践。
内容简介
作者从为什么、是什么、怎么办这三个方面,分别讲解了分布式应用服务的拆分、分布式调用、分布式协同、分布式计算、分布式存储、分布式资源管理和调度、高性能与可用性以及指标与监控等内容,基本涵盖了分布式技术的要点。
目录
- 版权信息
- 前言
- 第1章 分布式架构设计的特征与问题
- 1.1 架构设计的演进过程
- 1.1.1 应用与数据一体模式
- 1.1.2 应用与数据分离模式
- 1.1.3 缓存与性能的提升
- 1.1.4 服务器集群处理并发
- 1.1.5 数据库读写分离
- 1.1.6 反向代理和 CDN
- 1.1.7 分布式数据库与分表分库
- 1.1.8 业务拆分
- 1.1.9 分布式与微服务
- 1.2 一个简单的例子:分布式架构的组成
- 1.2.1 架构概述与分层
- 1.2.2 客户端与 CDN
- 1.2.3 接入层
- 1.2.4 应用层
- 1.2.5 存储层
- 1.3 分布式架构的特征
- 1.4 分布式架构的问题
- 1.4.1 分布式架构的逻辑结构图
- 1.4.2 应用服务拆分
- 1.4.3 分布式调用
- 1.4.4 分布式协同
- 1.4.5 分布式计算
- 1.4.6 分布式存储
- 1.4.7 分布式资源管理与调度
- 1.4.8 高性能与可用性
- 1.4.9 指标与监控
- 1.5 本书的阅读方式
- 1.6 总结
- 第2章 分布式应用服务的拆分
- 2.1 起因与概念
- 2.2 拆分思路
- 2.3 模型结构
- 2.3.1 通用语言
- 2.3.2 领域、子域和限界上下文
- 2.3.3 实体和值类型
- 2.3.4 聚合和聚合根
- 2.3.5 领域事件
- 2.4 分析业务需求形成应用服务
- 2.4.1 分析业务流程
- 2.4.2 抽取领域对象和生成聚合
- 2.4.3 划定限界上下文
- 2.5 领域驱动设计分层
- 2.5.1 分层的概述与原则
- 2.5.2 分层的内容
- 2.5.3 分层的总结
- 2.5.4 服务内部的分层调用与服务间的调用
- 2.5.5 把分层映射到代码结构
- 2.5.6 代码分层示例
- 2.6 总结
- 第3章 分布式调用
- 3.1 负载均衡
- 3.1.1 负载均衡分类
- 3.1.2 负载均衡算法
- 3.2 API 网关
- 3.2.1 API 网关的定义
- 3.2.2 API 网关的服务定位
- 3.2.3 API 网关的技术原理
- 3.3 服务注册与发现
- 3.3.1 服务注册与发现的概念和原理
- 3.3.2 服务注册中心的可用性
- 3.3.3 服务注册中心的服务保存
- 3.4 服务间的远程调用
- 3.4.1 RPC 调用过程
- 3.4.2 RPC 动态代理
- 3.4.3 RPC 序列化
- 3.4.4 协议编码
- 3.4.5 网络传输
- 3.4.6 Netty 实现 RPC
- 3.5 总结
- 第4章 分布式协同
- 4.1 分布式系统的特性与互斥问题
- 4.1.1 集中互斥算法
- 4.1.2 基于许可的互斥算法
- 4.1.3 令牌环互斥算法
- 4.2 分布式锁
- 4.2.1 分布式锁的由来和定义
- 4.2.2 通过 Redis 缓存实现分布式锁
- 4.2.3 通过 ZooKeeper 实现分布式锁
- 4.2.4 分布式分段加锁
- 4.3 分布式事务
- 4.3.1 ACID 理论
- 4.3.2 CAP 理论
- 4.3.3 BASE 理论
- 4.3.4 DTP 模型
- 4.3.5 分布式事务 2PC 解决方案
- 4.3.6 分布式事务 TCC 解决方案
- 4.4 分布式选举
- 4.4.1 Bully 算法
- 4.4.2 Raft 算法
- 4.4.3 ZAB 算法
- 4.5 ZooKeeper
- 4.5.1 从一个简单的例子开始
- 4.5.2 Znode 的原理与使用
- 4.5.3 Watcher 原理与使用
- 4.5.4 Version 的原理与使用
- 4.5.5 会话的原理与使用
- 4.5.6 服务群组
- 4.6 总结
- 第5章 分布式计算
- 5.1 MapReduce 模式
- 5.1.1 MapReduce 的策略和理念
- 5.1.2 MapReduce 的体系结构
- 5.1.3 MapReduce 的工作流程
- 5.1.4 MapReduce 的应用实例
- 5.2 Stream 模式
- 5.2.1 Stream 模式的处理过程及特点
- 5.2.2 Storm 的体系结构与工作原理
- 5.2.3 Storm 的并发机制
- 5.2.4 Stream Grouping
- 5.2.5 Storm 集群架构
- 5.3 总结
- 第6章 分布式存储
- 6.1 数据存储面临的问题以及解决思路
- 6.1.1 RAID 磁盘阵列
- 6.1.2 分布式存储的组成要素
- 6.2 分布式数据库
- 6.2.1 分表分库
- 6.2.2 主从复制
- 6.2.3 数据扩容
- 6.3 分布式缓存
- 6.3.1 缓存分片算法
- 6.3.2 Redis 集群方案
- 6.3.3 缓存节点之间的通信
- 6.3.4 请求分布式缓存的路由
- 6.3.5 缓存节点的扩展和收缩
- 6.3.6 缓存故障的发现和恢复
- 6.4 总结
- 第7章 分布式资源管理和调度
- 7.1 分布式资源调度的由来与过程
- 7.1.1 资源调度可以解决什么问题
- 7.1.2 资源调度过程
- 7.2 资源划分和调度策略
- 7.2.1 Linux Container 资源是如何划分的
- 7.2.2 任务与资源如何匹配
- 7.3 分布式调度架构
- 7.3.1 中央式调度器
- 7.3.2 两级调度器
- 7.3.3 共享状态调度器
- 7.4 Kubernetes
- 7.4.1 Kubernetes 架构概述
- 7.4.2 从一个例子开始
- 7.4.3 kubectl 和 API Server
- 7.4.4 controller manager、Scheduler 和 kubelet
- 7.4.5 Service 和 kubelet
- 7.5 总结
- 第8章 高性能与可用性
- 8.1 缓存的应用
- 8.1.1 处处皆缓存
- 8.1.2 动静分离
- 8.1.3 HTTP 缓存
- 8.1.4 CDN 缓存
- 8.1.5 DNS 结构与访问流程
- 8.1.6 负载均衡实现动态缓存
- 8.1.7 进程内缓存
- 8.1.8 分布式进程缓存
- 8.2 可用性
- 8.2.1 请求限流
- 8.2.2 服务降级
- 8.2.3 服务熔断
- 8.3 总结
- 第9章 指标与监控
- 9.1 为什么需要监控系统
- 9.2 监控系统的指标
- 9.3 创建监控系统的步骤
- 9.4 监控系统的分类
- 9.4.1 日志类监控
- 9.4.2 调用链监控
- 9.4.3 度量类监控:LSM Tree 和 LevelDB
- 9.5 监控系统的分层
- 9.6 Zabbix 实现监控系统
- 9.6.1 Zabbix 构建监控系统过程
- 9.6.2 Zabbix 架构的安装和配置
- 9.6.3 Zabbix 监控方式
- 9.7 Prometheus 实现监控系统
- 9.7.1 Prometheus 系统架构
- 9.7.2 时间序列与 Metric 数据模型
- 9.7.3 Exporter 采集数据与服务发现
- 9.7.4 报警规则的定义和报警路由的分发
- 9.8 总结
- 第10章 架构设计思路和要点
- 10.1 架构设计思维方式
- 10.1.1 架构师的设计模型
- 10.1.2 过程设计模型
- 10.1.3 协作式设计模型
- 10.1.4 扩展立方设计模型
- 10.2 重构与测试
- 10.2.1 代码重构
- 10.2.2 性能测试与压力测试
- 10.3 学习与发展
- 10.3.1 思维方式
- 10.3.2 学习提升
- 10.3.3 职业发展
- 10.4 总结
- 作者简介
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。