May 2025
Intermediate to advanced
304 pages
3h 58m
Chinese
很抱歉,我很久以前就为这个话题创造了 "物品 "这个词,因为它会让很多人把注意力集中在较次要的想法上。
最重要的理念是 "信息传递"......制造优秀的、可发展的系统,关键在于设计模块如何交流,而不是模块的内部属性和行为应该是什么。
艾伦-凯
编写一个领域模型来管理单个业务流程固然很好,但当我们需要编写多个模型时该怎么办呢?在现实世界中,我们的应用程序位于一个组织中,需要与系统的其他部分交换信息。您可能还记得图 II-1 所示的上下文图。
面对这种需求,许多团队都会选择通过 HTTP API 集成的微服务。但一不小心,最终就会造成最混乱的局面:分布式大泥球。
在第二部分中,我们将展示如何将第一部分中的技术扩展到分布式系统。我们将放大研究如何将许多通过异步消息传递进行交互的小型组件组成一个系统。
我们将看到服务层和工作单元模式如何让我们重新配置应用程序,使其作为异步消息处理器运行,以及事件驱动系统如何帮助我们将聚合体和应用程序相互解耦。
我们将学习以下模式和技巧:
触发跨越一致性边界的工作流程。
提供从任何终端调用用例的统一方式。
在事件驱动架构中,读写分离可避免尴尬的妥协,并能提高性能和可扩展性。
此外,我们还将添加一个依赖注入框架。这与事件驱动架构本身没有任何关系,但却能整理出许多松散的部分。
Read now
Unlock full access