项目

微服务解决方案:微服务

您必须拥有ABP商业版或更高级别的许可证,才能创建微服务解决方案。

ABP Studio微服务解决方案初始包含若干微服务。随着解决方案的扩展,预期您将添加更多微服务。本文档简要介绍了解决方案中预构建微服务的结构。

微服务的数量根据您在创建解决方案时选择的选项而有所不同。但以下微服务始终包含在内:

  • 管理微服务用于管理系统的权限、语言及其他基础设置。
  • 身份微服务用于管理用户、角色及其权限。它主要为身份模块的UI(以及OpenIddict模块的UI,如果已选择)提供服务。

在下一节中,您将了解应用于所有微服务的基础解决方案结构。

微服务的解决方案结构

所有预构建微服务都采用统一的解决方案结构。本节将解释该通用解决方案结构以及我们在设计该结构时做出的一般决策。

首先,每个微服务都有其独立的.NET解决方案。通过这种方式,您可以独立地开发、版本控制、构建和部署它。由于微服务不依赖于解决方案的其他部分,您甚至可以将微服务迁移到源代码控制系统中的不同代码库。

微服务解决方案位于根解决方案文件夹下的 services 文件夹中。例如,如果您打开 services/administration 文件夹,将会看到以下文件夹和文件:

administration-microservice-in-file-system

每个微服务解决方案由三个.NET项目组成。下图展示了Visual Studio中的管理微服务:

administration-microservice-in-visual-studio

下面对这些项目进行说明:

  • Acme.CloudCrm.AdministrationService 是托管该微服务的主要可执行应用程序。它包含与该微服务相关的所有内容(实体、仓储、服务、控制器、数据库配置和迁移等)。
  • Acme.CloudCrm.AdministrationService.Contracts 包含服务的接口和数据传输对象。分离合约是很有用的。这样,您可以将 Contracts 包分享给客户端,以便它们能够轻松使用您的服务。请参阅通信文档以了解如何操作。
  • Acme.CloudCrm.AdministrationService.Tests 包含该微服务的单元测试和集成测试。虽然强烈建议为您的服务构建测试,但如果您不想编写测试,可以删除该项目。

我们没有为预构建的微服务应用分层,因为它们包含的代码不多,不需要如此复杂。微服务应该是小型(微!)服务,因此通常可以在单个项目/单层中管理代码库。但是,如果您想为微服务实现分层,可以按照 添加新微服务 指南创建分层微服务。

接下来的章节介绍并解释解决方案中的预构建服务。

预构建微服务

服务的解决方案结构是通用的,已在前一节中说明。以下章节介绍了各个微服务,并解释了其基本独特之处。

管理微服务

下图展示了ABP Studio 解决方案资源管理器 中管理微服务的模块结构:

administration-microservice-in-solution-explorer

管理服务主要用于管理系统中的权限(使用权限管理模块)、功能(使用功能管理模块)、设置(使用设置管理模块)和语言(使用语言管理模块)(可能还有其他根据您的偏好选择的服务)。这些都是解决方案中所有服务和应用程序使用的通用基础设施服务。管理服务负责为这些服务的UI提供管理HTTP API,并维护它们的数据库架构。

除了这些基础基础设施服务外,管理服务还创建了BLOB存储数据库,以便其他服务可以轻松存储BLOB。

身份微服务

下图展示了ABP Studio 解决方案资源管理器 中身份微服务的模块结构:

identity-microservice-in-solution-explorer

身份微服务由UI用于管理用户、角色及其权限。它使用身份模块来实现此功能。如果您在创建解决方案时选择了OpenIddict UI,它还会为OpenIddict提供管理API。它为这些模块创建并管理数据库架构。

SaaS微服务(可选)

如果您在创建解决方案时选择了SaaS模块,SaaS微服务将被添加到解决方案中,如下图所示:

saas-microservice-in-solution-explorer

该微服务提供SaaS模块的HTTP API,并创建和管理其数据库。

多租户是解决方案的通用功能。如果您安装了SaaS模块,多租户将自动为解决方案中的所有服务和应用程序启用,并为您完成必要的配置。

审计日志微服务(可选)

如果您在创建解决方案时选择了审计日志模块,审计日志微服务将被添加到解决方案中,如下图所示:

audit-logging-microservice-in-solution-explorer

该微服务主要提供审计日志模块的HTTP API,并创建和管理其数据库。

GDPR微服务(可选)

如果您在创建解决方案时选择了GDPR模块,GDPR微服务将被添加到解决方案中,如下图所示:

gdpr-microservice-in-solution-explorer

该微服务主要提供GDPR模块的HTTP API,并创建和管理其数据库。

文件管理微服务(可选)

如果您在创建解决方案时选择了文件管理模块,文件管理微服务将被添加到解决方案中,如下图所示:

file-management-microservice-in-solution-explorer

该微服务主要提供文件管理模块的HTTP API,并创建和管理其数据库。

聊天微服务(可选)

如果您在创建解决方案时选择了聊天模块,聊天微服务将被添加到解决方案中,如下图所示:

chat-microservice-in-solution-explorer

该微服务主要提供聊天模块的HTTP API,并创建和管理其数据库。


在本文档中