书海网短评:
本书将介绍不同阶段的微服务中应用程序开发的各种设计模式及其佳实践。微服务模式和佳实践始于对微服务关键概念的理解,并展示如何在设计微服务时做出正确的选择。本书将讨论内部微服务应用程序的各种方法,如缓存策略、异步机制、CQRS和
《微服务设计模式和最佳实践》将介绍不同阶段的微服务中应用程序开发的各种设计模式及其佳实践。微服务模式和佳实践始于对微服务关键概念的理解,并展示如何在设计微服务时做出正确的选择。《微服务设计模式和最佳实践》将讨论内部微服务应用程序的各种方法,如缓存策略、异步机制、CQRS和事件源等。随着过程的不断推进,读者将深入了解微服务的相关设计模式。
《微服务设计模式和最佳实践》详细阐述了与微服务相关的基本解决方案,主要包括微服务概念、微服务工具、内部模式、微服务生态环境、共享数据微服务设计模式、聚合器微服务设计模式、代理微服务设计模式、链式微服务设计模式、分支微服务设计模式、异步消息微服务、微服务间的协同工作、微服务测试以及安全监测和部署方案等内容。此外,《微服务设计模式和最佳实践》还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。
《微服务设计模式和最佳实践》适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
目录
第1章微服务概念1
1.1理解应用程序2
1.1.1领域驱动设计2
1.1.2单一职责原则4
1.1.3显式发布的接口5
1.2独立部署、更新、扩展以及替换7
1.2.1独立部署7
1.2.2更新7
1.2.3可扩展性8
1.3轻量级通信12
1.3.1同步13
1.3.2异步13
1.4异质/多语言14
1.5通信的文档化14
1.6Web应用程序端点15
1.7移动应用程序端点15
1.8缓存客户端16
1.9调节客户端17
1.10确定贫血域17
1.11确定fat域18
1.12针对业务确定微服务域18
1.13从域到实体19
1.14本章小结20
第2章微服务工具21
2.1编程语言21
2.1.1熟练程度22
2.1.2性能22
2.1.3实践开发23
2.1.4生态圈23
2.1.5扩展性的开销24
2.1.6选取编程语言24
2.2微服务框架27
2.2.1Python语言27
2.2.2Go语言29
2.3二进制通信—服务间的直接通信31
2.3.1理解通信方式31
2.3.2直接通信间的警示信息35
2.4消息代理—服务间的异步通信37
2.4.1ActiveMQ38
2.4.2RabbitMQ39
2.4.3Kafka40
2.5缓存工具40
2.5.1Memcached42
2.5.2Redis42
2.6故障警示工具44
2.6.1性能44
2.6.2构建45
2.6.3组件46
2.6.4实现鸿沟47
2.7数据库47
2.8本地性能度量48
2.8.1ApacheBenchmark49
2.8.2WRK50
2.8.3Locust51
2.9本章小结53
第3章内部模式55
3.1开发结构55
3.1.1数据库55
3.1.2编程语言和工具56
3.1.3项目结构56
3.2缓存策略71
3.2.1缓存机制的应用72
3.2.2缓存优先78
3.2.3队列任务79
3.2.4异步机制和worker81
3.3CQRS—查询策略87
3.3.1CQRS的概念87
3.3.2理解CQRS88
3.3.3CQRS的优点和缺陷90
3.4事件源—数据完整性91
3.5本章小结92
第4章微服务生态环境93
4.1容器中的分离机制93
4.1.1分层服务架构95
4.1.2分离UsersService96
4.2存储分布103
4.2.1折旧数据103
4.2.2区域化数据103
4.3隔离—使用生态系统防止故障的出现104
4.3.1冗余设计104
4.3.2临界分区109
4.3.3隔离设计110
4.3.4快速故障111
4.4断路器112
4.5本章小结113
第5章共享数据微服务设计模式115
5.1理解模式115
5.2将单体应用程序划分为微服务116
5.2.1定义优先级117
5.2.2设置期限117
5.2.3定义应用程序域117
5.2.4试验操作117
5.2.5制定标准118
5.2.6构建原型118
5.2.7发送产品118
5.2.8开发新的微服务118
5.3数据编排130
5.4响应整合132
5.5微服务通信132
5.6存储共享反模式133
5.7最佳实践133
5.8测试机制133
5.9共享数据模式的利弊135
5.10本章小结136
第6章聚合器微服务设计模式137
6.1理解聚合器设计模式137
6.2使用CQRS和事件源139
6.2.1分离数据库139
6.2.2重构微服务140
6.3微服务通信153
6.3.1创建编排器154
6.3.2使用消息代理159
6.4模式扩展163
6.5瓶颈反模式164
6.6最佳实践166
6.7测试167
6.7.1功能测试167
6.7.2集成测试168
6.8聚合器设计模式的优缺点170
6.8.1聚合器设计模式的优点170
6.8.2聚合器设计模式的缺点170
6.9本章小结170
第7章代理微服务设计模式171
7.1代理方案171
7.1.1哑代理172
7.1.2智能代理172
7.1.3理解当前代理173
7.2编排器的代理策略175
7.3微服务通信176
7.4模式扩展性176
7.5最佳实践177
7.5.1纯粹的模式177
7.5.2瓶颈问题178
7.5.3代理制的缓存机制178
7.5.4简单的响应178
7.6代理设计模式的优缺点179
7.7本章小结179
第8章链式微服务设计模式181
8.1理解模式181
8.2数据编排和响应整合184
8.3微服务通信185
8.4模式扩展性185
8.5“大泥球”反模式186
8.6最佳实践方案188
8.6.1纯微服务188
8.6.2请求一致性数据188
8.6.3深入理解链式设计模式189
8.6.4关注通信层189
8.7链式设计模式的优缺点189
8.8本章小结190
第9章分支微服务设计模式191
9.1理解模式191
9.2数据编排和响应整合194
9.3微服务通信195
9.4模式扩展197
9.5最佳实践方案198
9.5.1域定义198
9.5.2遵守规则198
9.5.3关注物理组件198
9.5.4简化行为199
9.6分支设计模式的优缺点199
9.7本章小结199
第10章异步消息微服务201
10.1理解当前模式201
10.2域定义—RecommendationService203
10.3域定义—RecommendationService204
10.4微服务编码204
10.5微服务通信211
10.5.1使用消息代理和队列211
10.5.2准备pub/sub结构212
10.6模式的可扩展性214
10.7进程序列反模式214
10.8最佳实践方案215
10.8.1应用程序定义215
10.8.2不要尝试创建响应216
10.8.3保持简单性216
10.9异步消息传递设计模式的优缺点216
10.10本章小结217
第11章微服务间的协同工作219
11.1理解当前应用程序状态219
11.1.1公共饰面层220
11.1.2内部层222
11.1.3理解通用工具223
11.2通信层和服务间的委托224
11.2.1理解服务间的数据合约225
11.2.2使用二进制通信228
11.3模式分布235
11.4故障策略236
11.5API集成237
11.6本章小结239
第12章微服务测试241
12.1单元测试241
12.2针对集成测试配置容器249
12.3集成测试251
12.4端到端测试253
12.5发布管线259
12.6签名测试259
12.7Monkey测试260
12.8ChaosMonkey260
12.9本章小结262
第13章安全监测和部署方案263
13.1监测微服务263
13.1.1监测单一服务264
13.1.2监测多项服务266
13.1.3查看日志267
13.1.4应用程序中的错误268
13.1.5度量方法271
13.2安全问题272
13.2.1理解JWT272
13.2.2单点登录275
13.2.3数据安全276
13.2.4预防恶意攻击—识别攻击行为277
13.2.5拦截器277
13.2.6容器278
13.2.7API网关279
13.3部署279
13.3.1持续集成和持续交付/持续部署280
13.3.2蓝/绿部署模式和Canary发布281
13.3.3每台主机包含多个服务实例282
13.3.4每台主机的服务实例283
13.4本章小结285









