微服务解决方案:结构解析
您必须拥有ABP商业版或更高许可证才能创建微服务解决方案。
本文档详细解释了ABP Studio微服务解决方案模板的解决方案与文件夹结构。
本文档假设您已按照《快速入门:使用ABP Studio创建微服务解决方案》指南创建了一个新的微服务解决方案。
理解ABP解决方案结构
创建新的微服务解决方案后,您将在解决方案资源管理器面板中看到类似下图的树形结构:
上图中的每个叶子节点(例如 Acme.CloudCrm.IdentityService、Acme.CloudCrm.Web、Acme.CloudCrm.WebGateway……)都是一个ABP Studio模块。ABP Studio模块可以是Web应用程序、API网关、微服务、控制台应用程序或任何.NET允许构建的项目类型。这些模块在解决方案中按文件夹(apps、gateways 和 services)进行分组。
每个ABP Studio模块都拥有独立的.NET解决方案;这使得您的团队能够按照微服务架构的特性,独立开发各个模块。
有关ABP Studio解决方案、模块和包术语的完整定义,请参阅《概念》文档。
探索文件夹结构
您可以在解决方案资源管理器中右键点击根节点(本例中为 Acme.CloudCrm),选择打开方式 -> 资源管理器命令,在文件系统中打开包含该解决方案的文件夹:
解决方案的根文件夹结构将类似于以下布局:
该文件夹结构与ABP Studio解决方案资源管理器中的布局基本对应:
.abpstudio文件夹包含您对此解决方案的个人偏好设置,不纳入源代码控制系统(已通过Git忽略)。该文件夹由ABP Studio创建和使用。app文件夹包含具有用户界面的应用程序,通常由系统最终用户使用。etc文件夹包含解决方案的附加文件,包含以下子文件夹:abp-studio文件夹包含由ABP Studio管理的设置。此文件夹会纳入源代码控制系统并在开发者之间共享。docker文件夹包含docker-compose配置,用于在本地计算机上轻松运行解决方案所需的基础设施依赖项(如RabbitMQ、Redis)。helm文件夹包含所有Helm图表及相关脚本,用于将解决方案部署到Kubernetes。k8s文件夹包含一些附加文件,用于在本地机器上设置Kubernetes仪表板。
gateways文件夹包含一个或多个API网关(数量取决于您是否选择了移动应用程序或其他可用应用程序)。本解决方案实现了BFF(前后端分离模式),即为每个不同的UI应用程序配备专属的API网关。services文件夹包含微服务。微服务数量根据创建解决方案时选择的选项而定,但以下微服务始终包含在内:administration微服务用于管理系统权限、语言和其他基础设置。identity微服务用于管理用户、角色及其权限。它主要为身份管理模块的UI(以及若选择了OpenIddict模块,则也为其UI)提供服务。
抠丁客





