架构的关键是什么?
架构就是取舍,进而架构师就是做出取舍的人。大家都认同,做架构的人的特征之一应该是“Independent”(独立),这也是我选择做独立解决方案进而设计产品的重要原因。在我们看来,只有独立才有可能让我们在做架构设计时做出中立和独特的方案。面对问题时,大多数人会希望有人可以给出“正确的”建议,但是多数时候,困扰人们的不是“什么才是正确的”,而是“取舍之间”。
笔者推荐大家阅读这份微服务架构设计模式PDF的理由:这是一本可以帮你在设计微服务架构时做出取舍的书,它能在你处理微服务相关问题左右为难的时候给你提供参考和建议。
这份PDF将使读者对微服务架构、它的好处和弊端,以及应该何时使用微服务架构有一个很好的理解。书中描述了如何解决我们将面临的众多架构设计挑战,包括如何管理分布式数据,还介绍了如何将单体应用程序重构为微服务架构。但本书并不是鼓吹微服务架构的宣言。相反,它的内容围绕着一系列模式进行展开。模式是在特定上下文中发生的问题的可重用解决方案。模式的优点在于,除了描述解决方案的好处之外,还描述了成功实施解决方案时必须克服的弊端和问题。根据我的经验,在选择解决方案时,这种客观性会带来更好的决策。我希望你会喜欢阅读这本书,它会教你如何成功开发基于微服务架构的应用程序。
上面吹嘘了这么多,下面就让我们一起来学习一下这份美国著名作家:克里斯 理查森所写的微服务架构设计模式,这份PDF的免费获取方式我放在了文末!
章节目录
第1章逃离单体地狱
本章导读:
- 单体地狱的特征,如何借助微服务架构逃离单体地狱
- 微服务架构的基本特征,它的好处和弊端
- 开发大型复杂应用时,如何借助微服务实现DevOps式开发风格
- 微服务架构的模式语言及为什么使用它
第2章服务的拆分策略
本章导读:
- 理解软件架构,以及它为什么如此重要
- 使用拆分模式中的业务能力模式和子域模式进行单体应用到服务的拆分
- 使用领域驱动设计中的限界上下文概念来分解数据,并让服务拆分变得更容易
第3章微服务架构中的进程间通信
本章导读:
- 通信模式的具体应用:远程过程调用、断路器、客户端发现、自注册、服务端发现、第三方注册、异步消息、事务性发件箱、事务日志拖尾、轮询发布者
- 进程间通信在微服务架构中的重要性
- 定义和演化API
- 如何在各种进程间通信技术之间进行权衡
- 使用异步消息对服务的好处
- 把消息作为数据库事务的一部分可靠发送
第4章使用Saga管理事务
本章导读:
- 为什么分布式事务不适合现代应用程序
- 使用Saga模式维护微服务架构的数据一致性
- 使用协同和编排这两种方式来协调Saga
- 采用对策来解决缺乏隔离的问题
第5章微服务架构中的业务逻辑设计
本章导读:
- 设计业务逻辑组织模式:事务脚本模式和领域建模模式
- 使用领域驱动设计的聚合模式设计业务逻辑
- 在微服务架构中应用领域事件模式
第6章使用事件溯源开发业务逻辑
本章导读:
- 使用事件溯源模式开发业务逻辑
- 实现事件存储库
- 整合Saga和基于事件溯源的业务逻辑
- 使用事件溯源实现Saga编排器
第7章在微服务架构中实现查询
本章导读:
- 在微服务架构中查询数据的挑战
- 何时以及如何使用API组合模式实现查询
- 何时以及如何使用CQRS模式实现查询
第8章外部API模式
本章导读:
- 设计能够支持多种客户端的API的挑战
- 使用API Gateway模式和后端前置模式
- 设计和实现API Gateway
- 使用响应式编程来简化API组合
- 使用GraphQL实现API Gateway
第9章微服务架构中的测试策略(上)
本章导读:
- 微服务中有效的测试策略
- 使用模拟(mock)和桩(stub)对软件中的元素执行隔离测试
- 使用测试金字塔确定测试工作的重点
- 对服务中的类执行单元测试
第10章微服务架构中的测试策略(下)
本章导读:
- 在隔离环境中测试服务的技术。
- 使用消费者驱动的契约测试编写快速且可靠的测试,用来验证服务间的通信。
- 何时以及如何进行应用程序的端到端测试。
第11章开发面向生产环境的微服务应用
第12章部署微服务应用
第13章微服务架构的重构策略
免费获取方式:点赞一下这篇文章+关注我,扫码获取!