1、分层架构
(Layered Architecture)
分层架构模式是应用最为广泛的架构模式,它根据关注点分离的架构原则,针对表现层、领域层和基础设施层进行层次分离。本次培训将以全新视角审视分层架构,针对大型软件系统分析该如何进行分层架构设计。
案例分析:网上银行的分层架构,根据最基本的业务流程对系统进行关注点分离,绘制系统的分层架构,并通过时序图展现各层之间的协作。
2、六边形架构 (Hexagonal Architecture)
虽然分层架构仍然是运用最为广泛的架构模式,同时更是诸多架构模式的基础,但它已不足以描述越来越复杂的分布式系统架构。由Cockburn提出的六边形架构(Hexagonal
Architecture)是一种具有对称性特征的架构风格。在这种架构中,不同的客户通过“平等”的方式与系统交互。该架构中存在两个区域,分别是“外部区域”和“内部区域”。这种界定了明确内外边界的架构风格,更有利于架构师实现关注点分离,并将关注重心放在适配器与通信端口上。
演练:六边形架构的通信边界
案例:大型金融系统的客户管理
3、CQRS
CQRS风格,即命令查询职责分离(Command Query Responsibility
Segregation),它结合了消息处理、事件处理的架构风格,是对多种设计模式的综合运用,适用于处理读写比例高,需要支持可伸缩性的大型系统。
案例:AxonFramework对CQRS的支持
4、事件驱动架构 (Event-Driven Architecture)
事件驱动架构(Event-Driven Architecture,EDA)是一种用于处理事件生成、发现和处理等任务的软件架构。事件往往对应于软件系统的状态机,状态的迁移就是用事件来触发的。因而,事件能够很好地体现这样的业务模型。同时,基于事件的软件架构可以帮助我们更好地建立松散耦合的模块化架构。 |