CHES & D 分层架构 (CHES & D Layered Architecture)
概览 (Overview)
StackSaga 引入了一种名为 CHES 分层架构 的全新设计模式。它是 Spring 传统三层架构的演进扩展版本。在深入探讨 CHES & D 分层架构之前,让我们先快速回顾一下 Spring 的三层架构。
默认 Spring 分层架构 (Default Spring Layered Architecture)
在常规开发中,您通常已经熟悉并使用以下 Spring 三层架构:
-
控制器层 (Controller Layer / 表现层)
-
服务层 (Service Layer / 业务逻辑层)
-
仓储层 (Repository Layer / 数据访问层)
当迁移到微服务架构时,如果数据需要从另一个微服务获取,数据访问层通常会被客户端层 (Client Layer) 所替代。该客户端可以是 HTTP 客户端,也可以是目标服务支持的任何其他协议客户端。
下图展示了微服务中的分层架构:
-
在这里,您可以看到
orderService使用StockRepository(仓储层)访问本地数据库,而PaymentService使用PaymentServiceClient(客户端层)从外部PaymentService访问数据。
演进至 CHES & D 分层架构 (Migration to CHES & D Layered Architecture)
CHES & D 分层架构由五个分层组成,新引入了处理程序层 (Handler Layer) 与执行器层 (Executor Layer):
-
C —— 控制器层 (Controller Layer)
-
H —— 处理程序层 (Handler Layer)
-
E —— 执行器层 (Executor Layer)
-
S —— 服务层 (Service Layer)
-
D —— 数据访问层 (Data Access Layer)
-
仓储层 (Repository Layer)
-
客户端层 (Client Layer)
-
接下来深入探讨每一层的职责: