这书循序渐进地论述了架构设计的相关内容,较为合适下列种类的读者:
•沒有架构设计工作经验,但对架构设计十分有兴趣爱好,期待学习架构设计技术性,提高技术性能力,变成“大型厂面霸”的读者;
•早已试着了一些架构设计,但挖了各种各样“坑”或踩了各种各样“坑”,期待了解“为何”的专业技术人员;
•具有一定的架构设计工作经验,想进一步专业化地提高架构设计能力,变成令人满意的“高級技术专家”“杰出技术专家”的读者。
架构设计是专业技术人员成才和升职全过程中务必把握的专业技能,但现阶段业内欠缺系统架构师学习和塑造层面系统化的专业知识和实践活动的具体指导,这书融合创作者很多年在架构设计层面的学习、思索、实践活动,明确提出了详细的一套架构设计方法论,包含什么叫构架、架构设计的目地、架构设计标准、架构设计步骤、架构设计方式和方法、互联网企业技术性演变等內容。这套架构设计方法论合适不一样制造行业,例如互联网技术、公司使用等;也合适不一样的技术领域,例如后端开发架构设计、前端开发架构设计、手机客户端架构设计、测试平台架构设计、运维平台架构设计等。
目录
- 第1部分 概念和基础
- 第1章 架构基础
- 1.1 “架构”到底指什么
- 1.1.1 系统与子系统
- 1.1.2 模块与组件
- 1.1.3 框架与架构
- 1.1.4 重新定义架构
- 1.2 架构设计的目的
- 1.2.1 架构设计的误区
- 1.2.2 以史为鉴
- 1.2.3 架构设计的真正目的
- 1.3 复杂度来源
- 1.3.1 高性能
- 1.3.2 高可用
- 1.3.3 可扩展性
- 1.3.4 低成本
- 1.3.5 安全
- 1.3.6 规模
- 1.4 本章小结
- 第2章 架构设计原则
- 2.1 合适原则
- 2.2 简单原则
- 2.3 演化原则
- 2.4 本章小结
- 第3章 架构设计流程
- 3.1 有的放矢—识别复杂度
- 3.2 按图索骥—设计备选方案
- 3.3 深思熟虑—评估和选择备选方案
- 3.3.1 业务背景
- 3.3.2 备选方案设计
- 3.3.3 备选方案360度环评
- 3.4 精雕细琢—详细方案设计
- 3.5 本章小结
- 第2部分 高性能架构模式
- 第4章 存储高性能
- 4.1 关系数据库
- 4.1.1 读写分离
- 4.1.2 分库分表
- 4.1.3 实现方法
- 4.2 NoSQL
- 4.2.1 K-V存储
- 4.2.2 文档数据库
- 4.2.3 列式数据库
- 4.2.4 全文搜索引擎
- 4.3 缓存
- 4.3.1 缓存穿透
- 4.3.2 缓存雪崩
- 4.3.3 缓存热点
- 4.4 本章小结
- 第5章 计算高性能
- 5.1 单服务器高性能
- 5.1.1 PPC
- 5.1.2 prefork
- 5.1.3 TPC
- 5.1.4 prethread
- 5.1.5 Reactor
- 5.1.6 Proactor
- 5.2 集群高性能
- 5.2.1 负载均衡分类
- 5.2.2 负载均衡架构
- 5.2.3 负载均衡的算法
- 5.3 本章小结
- 第3部分 高可用架构模式
- 第6章 CAP
- 6.1 CAP理论
- 6.1.1 一致性(Consistency)
- 6.1.2 可用性
- 6.1.3 分区容忍性(Partition Tolerance)
- 6.2 CAP应用
- 6.2.1 CP—Consistency/Partition Tolerance
- 6.2.2 AP—Availability/Partition Tolerance
- 6.3 CAP细节
- 6.4 ACID、BASE
- 6.4.1 ACID
- 6.4.2 BASE
- 6.5 本章小结
- 第7章 FMEA
- 7.1 FMEA介绍
- 7.2 FMEA方法
- 7.3 FMEA实战
- 7.4 本章小结
- 第8章 存储高可用
- 8.1 主备复制
- 8.1.1 基本实现
- 8.1.2 优缺点分析
- 8.2 主从复制
- 8.2.1 基本实现
- 8.2.2 优缺点分析
- 8.3 主备倒换与主从倒换
- 8.3.1 设计关键
- 8.3.2 常见架构
- 8.4 主主复制
- 8.5 数据集群
- 8.5.1 数据集中集群
- 8.5.2 数据分散集群
- 8.5.3 分布式事务算法
- 8.5.4 分布式一致性算法
- 8.6 数据分区
- 8.6.1 数据量
- 8.6.2 分区规则
- 8.6.3 复制规则
- 8.7 本章小结
- 第9章 计算高可用
- 9.1 主备
- 9.2 主从
- 9.3 对称集群
- 9.4 非对称集群
- 9.5 本章小结
- 第10章 业务高可用
- 10.1 异地多活
- 10.1.1 异地多活架构
- 10.1.2 异地多活设计技巧
- 10.1.3 异地多活设计步骤
- 10.2 接口级的故障应对方案
- 10.2.1 降级
- 10.2.2 熔断
- 10.2.3 限流
- 10.2.4 排队
- 10.3 本章小结
- 第4部分 可扩展架构模式
- 第11章 可扩展模式
- 11.1 可扩展概述
- 11.2 可扩展的基本思想
- 11.3 可扩展方式
- 11.4 本章小结
- 第12章 分层架构
- 12.1 分层架构类型
- 12.2 分层架构详解
- 12.3 本章小结
- 第13章 SOA架构
- 13.1 SOA历史
- 13.2 SOA详解
- 13.3 本章小结
- 第14章 微服务
- 14.1 微服务历史
- 14.2 微服务与SOA的关系
- 14.3 微服务的陷阱
- 14.4 微服务最佳实践
- 14.4.1 服务粒度
- 14.4.2 拆分方法
- 14.4.3 基础设施
- 14.5 本章小结
- 第15章 微内核架构
- 15.1 基本概念
- 15.2 设计关键点
- 15.3 OSGi架构简析
- 15.4 规则引擎架构简析
- 15.5 本章小结
- 第5部分 架构实战
- 第16章 消息队列设计实战
- 16.1 需求
- 16.2 设计流程
- 16.2.1 识别复杂度
- 16.2.2 设计备选方案
- 16.2.3 评估和选择备选方案
- 16.2.4 细化方案
- 16.3 本章小结
- 第17章 互联网架构演进
- 17.1 技术演进
- 17.1.1 技术演进的动力
- 17.1.2 淘宝
- 17.1.3 手机QQ
- 17.1.4 微信
- 17.2 技术演进的模式
- 17.3 互联网业务发展
- 17.3.1 业务复杂性
- 17.3.2 用户规模
- 17.3.3 量变到质变
- 17.4 本章小结
- 第18章 互联网架构模板
- 18.1 总体结构
- 18.2 存储层技术
- 18.2.1 SQL
- 18.2.2 NoSQL
- 18.2.3 小文件存储
- 18.2.4 大文件存储
- 18.3 开发层技术
- 18.3.1 开发框架
- 18.3.2 Web服务器
- 18.3.3 容器
- 18.4 服务层技术
- 18.4.1 配置中心
- 18.4.2 服务中心
- 18.4.3 消息队列
- 18.5 网络层技术
- 18.5.1 负载均衡
- 18.5.2 CDN
- 18.5.3 多机房
- 18.5.4 多中心
- 18.6 用户层技术
- 18.6.1 用户管理
- 18.6.2 消息推送
- 18.6.3 存储云与图片云
- 18.7 业务层技术
- 18.8 平台技术
- 18.8.1 运维平台
- 18.8.2 测试平台
- 18.8.3 数据平台
- 18.8.4 管理平台
- 18.9 本章小结
- 第19章 架构重构
- 19.1 有的放矢
- 19.2 合纵连横
- 19.2.1 合纵
- 19.2.2 连横
- 19.3 运筹帷幄
- 19.4 文武双全—项目管理 技术能力
- 19.5 本章小结
- 第20章 开源系统
- 20.1 选:如何选择一个开源项目
- 20.1.1 聚焦是否满足业务
- 20.1.2 聚焦是否成熟
- 20.1.3 聚焦运维能力
- 20.2 用:如何使用开源方案
- 20.2.1 深入研究,仔细测试
- 20.2.2 小心应用,灰度发布
- 20.2.3 做好应急,以防万一
- 20.3 改:如何基于开源项目做二次开发
- 20.3.1 保持纯洁,加以包装
- 20.3.2 发明你要的轮子
- 20.4 本章小结