本文写于 2023 年,示例依赖的 ABP、.NET、Docker Compose 等工具版本可能已经更新。实际搭建时,请结合当前官方文档调整版本和命令。
eShopOnAbp 是一个基于 ABP 框架的微服务解决方案,包含电商系统的基本功能。这个项目目前已经停止维护,但它在微服务拆分、目录组织和集成方式上的设计,依然很值得参考。它主要用于演示如何使用 ABP 框架构建微服务解决方案,代码结构和设计思路都很有参考价值,但并不适合直接拿来作为业务项目使用。因此,本文会从零开始,使用 ABP 框架创建一个新的解决方案,再逐步添加功能,最终实现一套自己的微服务解决方案。
开发环境
工欲善其事,必先利其器。在开始之前,需要先准备好开发环境。无特殊说明时,示例会直接使用当时的最新版本;具体安装方法可以参考各工具的官方文档。
创建 Docker Compose 文件
上面的基础工具准备好之后,可以使用 Docker Compose 创建剩余的开发环境。当然,也可以用其他方式安装这些组件;这里选择 Docker Compose,主要是为了快速搭建一套可重复启动的本地环境。需要准备的组件包括:
- RabbitMQ
- Redis
- PostgreSQL
- pgAdmin(可选,用于管理 PostgreSQL 数据库)
新建一个文件夹,例如 microservice-solution,然后在 microservice-solution/etc/docker 目录下创建 docker-compose.infrastructure.yml 文件,内容如下:
1 | services: |
继续在 microservice-solution/etc/docker 目录下创建 docker-compose.infrastructure.override.yml 文件,内容如下:
1 | services: |
创建运行脚本
在 microservice-solution/etc/docker 目录下创建 up.ps1 和 down.ps1 文件,内容如下:
up.ps1:
1 | docker network create myprojectname-network |
down.ps1:
1 | docker compose -f docker-compose.infrastructure.yml -f docker-compose.infrastructure.override.yml down |
之后只需要运行 up.ps1 脚本即可启动所有开发环境,运行 down.ps1 脚本即可关闭它们。

在 pgAdmin 中管理 PostgreSQL 数据库
pgAdmin 是一个用于管理 PostgreSQL 数据库的工具。在上面的 docker-compose.infrastructure.override.yml 文件中,已经把 pgAdmin 的端口映射到了 5050。因此启动开发环境后,可以通过 http://localhost:5050 访问 pgAdmin。使用默认账号密码登录后,可以在右下角选择 Chinese (Simplified) 切换为中文界面。

登录成功后,在首页点击 添加服务器,并在弹出的对话框中填写以下信息:
- 名称:随便填写
- 主机:postgres-db
- 端口:5432
- 用户名:postgres
- 密码:myPassw0rd

添加成功后,就可以在 pgAdmin 中管理 PostgreSQL 数据库了。