系统架构模式
软件架构师和开发人员使用许多体系结构模式。 以下是一些模式(混合体系结构样式和体系结构模式)::
-
简单 CRUD、单层级、单层。
-
清洁体系结构(用于 eShopOnWeb)
-
命令查询职责分离 (CQRS)。
-
事件驱动的体系结构 (EDA)。
请注意,没有适用于所有情况的特定体系结构模式、样式或技术。 图 6-3 显示了一些可用于不同微服务的方法和技术(但不是按照特定顺序)。
图 6-3。 多体系结构模式和 polyglot 微服务体系
多体系结构模式和 polyglot 微服务意味着可以混合搭配语言和技术以满足每个微服务的需求,并且仍让它们彼此通信。
每个微服务可能具有不同体系结构模式,使用不同语言和数据库,具体取决于应用程序的本质、业务要求和优先级。
例如,对于简单的 CRUD 维护应用程序,设计和实现 DDD 模式可能无意义。 但对于核心域或核心业务,可能需要应用更高级的模式,以应对不断变化的业务规则的业务复杂性。
尤其是处理由多个子系统构成的大型应用程序时,不应基于单个体系结构模式应用单个顶级体系结构。 例如,CQRS 不应作为整个应用程序的顶级体系结构,但可能适用于一组特定的服务。
没有在任何情况下都通用的体系结构模式。 不可能有“适合所有情况的体系结构模式”。必须根据每个微服务的优先级,为每个微服务选择不同方法
设计简单的 CRUD 微服务
从设计的角度来看,这种类型的容器化微服务是非常简单的。 这有可能是由于要解决的问题很简单,也可能是由于其实现只是一个概念证明。
图 6-4 。 简单 CRUD 微服务的内部设计
这种由数据驱动的简单服务的一个例子是 eShopOnContainers 示例应用程序的目录微服务。 此类型的服务在单个 ASP.NET Core Web API 项目中实现其全部功能,该项目包含用于其数据模型、业务逻辑和数据访问代码的类。
简单的数据驱动 CRUD 微服务设计