第1 篇 架构方法论
1 有关架构的概念认知.. 2
1.1 引言.. 2
1.2 认识架构... 2
1.3 规划、架构与设计 4
1.3.1 三个不同层次的概念 4
1.3.2 规划与架构 4
1.3.3 架构与设计 5
1.4 解耦与服务化... 6
1.5 分工与组件化... 6
1.6 集中与分布... 7
1.7 规划还是演化... 8
1.8 简化也很必要... 9
1.9 架构与软件开发(软件过程) .11
1.9.1 敏捷软件开发11
1.9.2 敏捷软件开发与微服务架构..12
1.10 探讨传统企业IT 系统架构.12
1.10.1 从架构角度解决企业应用痛点.13
1.10.2 企业应用系统架构服务化迁移步骤...13
1.10.3 企业应用系统架构服务化参考模型...14
1.11 总结....15
2 以终为始的架构设计..16
2.1 缘起.16
2.2 我们的思考方式....17
2.3 为什么要做架构设计18
2.3.1 由模型到实施18
2.3.2 业务规模发展带来的复杂度..19
2.3.3 从沟通视角看软件架构20
2.4 如何做架构设计....20
2.4.1 以终为始,不忘初心....21
2.4.2 PMC 框架..21
2.4.3 从多视角、多层次看架构.23
2.4.4 满足利益相关者的需要25
2.4.5 聚焦SLA..26
2.4.6 抽象、协作、扩展、复用.28
2.4.7 分析全息视图29
2.5 架构是什么..29
2.5.1 架构兼具组成和决策的特点..30
2.5.2 架构是演进来的..30
2.5.3 无纯粹的非功能特性....31
2.6 总结.32
3 闭环架构方法34
3.1 系统提升的一般性方法和反馈环..34
3.2 产品创新闭环..36
3.3 组织闭环..37
3.4 研发流程闭环..39
3.5 系统架构闭环..40
3.6 一个反馈闭环实例....41
3.7 总结.44
4 复杂与架构演进的关系..46
4.1 什么是复杂..46
4.1.1 规模47
4.1.2 结构51
4.1.3 变化58
4.2 用架构思维控制复杂67
4.2.1 分而治之,控制规模....67
4.2.2 保持架构的清晰与一致67
4.2.3 拥抱变化..70
4.3 总结.71
5 架构师的核心能力.72
5.1 架构师承担的职责....72
5.2 架构师的核心能力....73
5.2.1 经验73
5.2.2 沟通74
5.2.3 快速学习..74
5.2.4 解决问题的能力..76
5.3 架构能力的修炼....76
5.4 总结.77
第2 篇 面向架构的架构(微服务)
6 快速继承微服务实践..80
6.1 概述.80
6.2 我们希望的微服务是什么样子的..81
6.3 实现微服务..82
6.4 实现的考量及调研....83
6.4.1 gRPC 有什么问题....83
6.4.2 如何提高易用性..83
6.5 让微服务快速落地....87
6.6 总结.89
7 微服务架构下的事务处理...90
7.1 概述.90
7.2 使用传统的本地事务和分布式事务保证一致性....90
7.3 在微服务架构中应满足数据最终一致性原则....92
7.4 微服务架构实现最终一致性的三种模式...92
7.4.1 可靠事件模式93
7.4.2 业务补偿模式...101
7.4.3 TCC(Try-Confirm-Cancel)模式.106
7.5 总结....109
8 微服务架构模式与实践110
8.1 微服务的主要架构模式...110
8.1.1 一体化模式..110
8.1.2 聚合模式.110
8.1.3 代理模式.111
8.1.4 资源共享模式...112
8.1.5 异步消息模式...112
8.2 大量微服务带来的挑战...112
8.3 微服务在好雨的解决方案...113
8.3.1 服务发现和注册113
8.3.2 弹性伸缩与负载均衡..115
8.3.3 容错处理(断路器与限流)116
8.3.4 监控与报警..116
8.3.5 数据存储与共享116
8.3.6 日志分析.117
8.4 总结....118
9 微服务与DevOps 架构实践.119
9.1 概述....119
9.2 某金融创业公司的微服务架构选型122
9.3 设计思想124
9.4 总体架构125
9.4.1 总体架构的特性125
9.4.2 具体实现.126
9.5 对微服务的支撑..128
9.6 DevOps 平台总体架构130
9.7 面向微服务的研发团队介绍....131
9.8 总结....133
10 基于云的微服务架构..134
10.1 概述..134
10.2 德比软件数据对接平台的架构..134
10.3 德比软件微服务架构基础设施..135
10.4 API 网关...136
10.5 服务框架..136
10.5.1 高可用RPC137
10.5.2 服务依赖管理.138
10.6 基础服务..140
10.6.1 配置中心....140
10.6.2 安全数据服务.141
10.6.3 数据存储服务.141
10.6.4 订单服务....142
10.7 服务降级..142
10.8 自动化..142
10.9 日志处理..143
10.10 调用链追踪.144
10.11 服务健康状态..144
10.11.1 报警....144
10.11.2 监控....145
10.12 发布管理146
10.13 总结....147
11 Service Fabric:平台架构解析...148
11.1 Service Fabric 概述148
11.1.1 Service Fabric 的特点148
11.1.2 Service Fabric 的适用场景..149
11.2 Service Fabric 编程模式.150
11.3 Service Fabric 服务通信.152
11.3.1 Service Fabric 的微服务开发工具153
11.3.2 对Service Fabric 的微服务进行监控和诊断...153
11.4 Service Fabric 可靠服务概述.154
11.4.1 Service Fabric 可靠服务——有状态服务的体系结构....154
11.4.2 Service Fabric 可靠服务——无状态服务的体系结构....156
11.4.3 Service Fabric 可靠服务——备份157
11.5 Service Fabric 可靠执行组件.157
11.6 Service Fabric 容器应用程序.159
11.7 总结..160
第3 篇 面向业务的架构
12 如何搭建高可伸缩的移动电商架构162
12.1 概述微服务的主要架构模式..162
12.2 移动端的混合架构162
12.3 服务器端的SOA 架构...164
12.4 PC 端和移动端的开发协作管理166
12.5 基于容器的虚拟化166
12.6 关于电商的私有云建设.167
12.7 如何应用弹性云来应对电商大促..169
12.8 应对电商大促峰值的“独孤九剑”...170
13 消费信贷系统“白付美”是如何持续优化的.172
13.1 “白付美”介绍..172
13.2 “白付美”从0 到1....172
13.3 大促期间的性能保证174
13.4 大促期间的稳定性保证.177
13.5 为服务多平台所做的优化.178
13.6 未来的优化方向179
13.7 总结..180
14 美丽联合集团支付系统架构演进....182
14.1 概述..182
14.2 支付系统1.0 .182
14.2.1 业务问题....183
14.2.2 系统问题....184
14.2.3 资金问题....185
14.3 支付系统2.0 .185
14.3.1 拆分系统边界.185
14.3.2 支付系统2.0 系统详解.187
14.3.3 统一平台业务上下文192
14.3.4 直面数据一致性挑战192
14.4 性能提升194
14.5 稳定性提升201
14.5.1 监控先行201
14.5.2 分离核心链路201
14.5.3 服务依赖梳理203
14.5.4 限流降级203
14.6 压测204
14.7 成效204
14.7.1 业务支撑能力204
14.7.2 系统服务能力205
14.8 总结206
15 金融撮合架构.207
15.1 概述207
15.2 系统总体设计208
15.2.1 系统核心模块208
15.2.2 撮合算法设计209
15.2.3 基于内存撮合212
15.2.4 灾备的多机设计.212
15.2.5 状态机复制213
15.2.6 系统架构215
15.3 总结218
第4 篇 面向性能的架构
16 一线架构师带你玩性能优化.220
16.1 什么是系统优化220
16.2 系统优化的方法论、思路和原则.220
16.2.1 常用方法论221
16.2.2 优化思路221
16.2.3 优化原则222
16.3 性能优化222
16.3.1 常见的性能问题.222
16.3.2 性能优化的具体工作.223
16.3.3 JVM 优化.230
16.3.4 数据库优化233
16.3.5 负载均衡优化235
16.4 总结237
17 性能优化的常见模式及趋势.238
17.1 性能优化的优缺点.238
17.2 性能优化的两种模式239
17.3 单应用优化239
17.3.1 优化的基本思路.239
17.3.2 确定性能瓶颈/热点的常见方法240
17.3.3 压测时通常观察的内容及其所使用的工具.240
17.3.4 常见的优化手段及模式.240
17.4 结构型优化241
17.5 两个结构型优化的案例245
17.5.1 处理单点/网络瓶颈的可行方式245
17.5.2 处理数据库连接池瓶颈的可行手段.245
17.6 总结247
18 性能优化之几种常见的压测模型及其优缺点248
18.1 压测模型抽象248
18.1.1 压测环境准备249
18.1.2 压测任务准备249
18.1.3 压测执行闭环249
18.2 线下压测模型250
18.3 线上引流压测模型.251
18.4 线上全链路压测模型252
18.5 总结253
19 缓存为王——无线缓存架构优化254
19.1 无线缓存的定义、限制条件及影响.254
19.2 无线缓存要从全局考虑254
19.2.1 服务器端架构对无线缓存的影响.254
19.2.2 无线缓存对服务器端架构的影响.255
19.2.3 大流量下无线缓存作用的劣化.256
19.2.4 无线缓存与本机移动端组件的关系.256
19.2.5 无线缓存存储介质的选择.257
19.3 数据、资源缓存及失效策略.257
19.3.1 架构详论257
19.3.2 实现失效策略259
19.4 总结263