展开全部

主编推荐语

本书从软件结构的发展历史入手,描述了分布式架构的特性和存在的问题,并围绕这些问题展开了分析和实践。

内容简介

作者从为什么、是什么、怎么办这三个方面,分别讲解了分布式应用服务的拆分、分布式调用、分布式协同、分布式计算、分布式存储、分布式资源管理和调度、高性能与可用性以及指标与监控等内容,基本涵盖了分布式技术的要点。

目录

  • 版权信息
  • 前言
  • 第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 总结
  • 作者简介
展开全部

评分及书评

评分不足
2个评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。