第一部分 微服务解惑篇 2
第1章 微服务架构 2
1.1 不微你就OUT了 2
1.2 产生背景 3
1.2.1 时代的召唤 3
1.2.2 容器神助攻 4
1.2.3 微服务的进击 4
1.3 微服务的标签 5
1.3.1 单一职责 6
1.3.2 微 6
1.3.3 面向服务 7
1.3.4 自治 8
1.3.5 易扩展 9
1.3.6 流程化 10
1.4 实力碾压 11
1.4.1 组件化 11
1.4.2 快速 13
1.4.3 可复用 13
1.4.4 机动灵活 13
1.5 不要奶我 14
1.5.1 不足 14
1.5.2 挑战 15
1.5.3 小结 16
1.6 本章小结 17
第2章 为何选择微服务 18
2.1 传统架构的病 18
2.1.1 中年危机 18
2.1.2 宝宝心里苦 19
2.2 微服务有药 21
2.2.1 讳疾忌医 21
2.2.2 朋友听说过安利么 22
2.2.3 沙盘演练看效果 22
2.3 微服务的价值 23
2.3.1 资源价值 24
2.3.2 业务价值 24
2.3.3 技术价值 24
2.3.4 用户价值 25
2.3.5 未来价值 25
2.3.6 小结 26
2.4 定个小目标 26
2.4.1 持续交付 26
2.4.2 业务敏捷 26
2.4.3 独立演进 27
2.4.4 高可用 27
2.4.5 高性能 27
2.4.6 站在云端 28
2.5 别人家的公司 28
2.6 来不及解释快上车 29
第3章 我拆我拆我拆拆拆 30
3.1 拆还是不拆 30
3.2 如何拆 32
3.2.1 庖丁解牛 32
3.2.2 数据模型和业务模型 33
3.2.3 金字塔结构图 33
3.2.4 关键指标 33
3.3 粒度 35
3.3.1 五笔字根 36
3.3.2 被遗忘的字典师傅 37
3.3.3 小结 37
3.4 边界 37
3.5 本章小结 38
第4章 如何使用微服务 39
4.1 如何规划 39
4.2 微服务重构 42
4.2.1 影响因素 42
4.2.2 重构原则 43
4.2.3 重构方法 44
4.3 本章小结 45
第5章 微服务的朋友圈 46
5.1 好朋友容器 46
5.1.1 容器的来历 46
5.1.2 容器的好处 47
5.1.3 小结 49
5.2 天生一对DevOps 49
5.2.1 DevOps是什么 49
5.2.2 为什么采用DevOps 50
5.2.3 小结 51
5.3 SOA是谁 51
5.3.1 接着忽悠 52
5.3.2 SOA是个什么鬼 52
5.3.3 小结 53
第二部分 技术实现篇 56
第6章 Spring Boot 56
6.1 介绍 56
6.2 特点 57
6.3 Spring Boot和微服务之间的关系 57
6.4 如何使用 58
6.5 可定制化 61
6.6 本章小结 64
第7章 Spring Cloud 65
7.1 Spring Cloud优势 66
7.2 Spring Cloud特点 67
7.3 Spring Cloud之服务管理 68
7.4 注册中心Eureka 69
7.4.1 什么是注册中心 69
7.4.2 为什么要有注册中心 69
7.4.3 Eureka来历 70
7.4.4 Eureka机制 71
7.4.5 如何使用 72
7.5 网关Zuul 77
7.5.1 Zuul 78
7.5.2 反向代理 78
7.5.3 如何使用 79
7.6 客户端负载均衡Ribbon 84
7.6.1 负载均衡 85
7.6.2 如何使用 85
7.6.3 补充说明 91
7.7 断路器Hystrix 92
7.7.1 如何隔离 93
7.7.2 电路熔断器模式 93
7.7.3 回滚降级 94
7.7.4 如何使用 95
7.7.5 交通疏导 101
7.7.6 小结 101
7.8 分布式配置中心Spring Cloud Config 101
7.8.1 为什么要有配置 102
7.8.2 集中配置的好处 103
7.8.3 配置方式的演进 103
7.8.4 如何使用 104
7.9 服务之间调用Feign 114
7.9.1 Feign如何使用 114
7.9.2 补充说明 118
7.10 服务追踪 119
7.10.1 Spring Cloud Sleuth介绍 119
7.10.2 Sleuth如何使用 120
7.10.3 日志聚合Zipkin 122
7.10.4 小结 127
7.11 Spring Cloud和Dubbo的比较 127
7.11.1 生的伟大 127
7.11.2 死的憋屈 127
7.11.3 没比较没伤害 128
7.11.4 现状 128
7.12 Spring Cloud与Spring Boot的关系 129
7.13 本章小结 130
第8章 其他相关技术和工具 131
8.1 数据库开发持续集成工具Liquibase 131
8.1.1 特性 132
8.1.2 使用 136
8.2 Swagger 144
8.2.1 为什么使用Swagger 144
8.2.2 如何使用 145
8.2.3 小结 149
8.3 权限spring security 150
8.4 微服务架构的通信方式 152
8.4.1 同步 153
8.4.2 异步 156
8.5 服务编排 160
8.6 管理工具JIRA 162
第9章 测试相关 166
9.1 单元测试 166
9.1.1 Mockito如何使用 168
9.1.2 Mock与InjectMocks的区别 171
9.2 接口测试 173
9.3 代码质量管理工具Sonar 174
9.3.1 特点 174
9.3.2 使用 175
第三部分 项目实战篇 188
第10章 三个典型系统案例 188
10.1 企业运营支撑系统 188
10.1.1 背景 188
10.1.2 现状 188
10.1.3 原因调查 189
10.1.4 解决方案 190
10.2 车队管理系统 193
10.2.1 背景 193
10.2.2 技术架构 193
10.2.3 服务如何拆分 194
10.3 财务管理系统 195
10.3.1 背景 195
10.3.2 现状 195
10.3.3 原因调查 196
10.3.4 解决方案 196
10.4 本章小结 197
第11章 开发管理 198
11.1 管理原则 198
11.2 日常管理 198
11.3 代码质量管理 199
11.4 工作方式 199
11.5 BA的职责 199
11.6 SA的职责 200
11.7 DEV的工作原则 201
11.8 本章小结 201
后记 202