eShopOnAbp是一个基于ABP框架的微服务解决方案,它包含了一个电商系统的基本功能。它的目的是为了演示如何使用ABP框架来构建微服务解决方案。它的代码结构和设计思想可以作为参考,但是不适合直接在项目中使用。因此本文将从头开始,使用ABP框架来创建一个新的解决方案,然后逐步添加功能,最终实现一个自己的微服务解决方案。
开发环境
工欲善其事,必先利其器。在开始之前,我们需要准备好开发环境。无特殊说明的话,我们直接使用最新版本。具体安装方法参考官方文档。
创建docker-compose文件
上面的环境准备好之后,我们使用docker-compose来创建剩下的开发环境,当然也可以使用其他方式准备好这些环境,这里主要为了快速搭建开发环境。需要的环境有:
- rabbitmq
- redis
- postgres
- pgadmin (可选, 用于管理postgres数据库)
新建一个文件夹,比如叫microservice-solution,然后在microservice-solution/etc/docker目录下创建docker-compose.infrastructure.yml文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
| version: '3.7'
services: rabbitmq: container_name: rabbitmq image: rabbitmq:management-alpine volumes: - rabbitmq_data:/var/lib/rabbitmq networks: - myprojectname-network redis: container_name: redis image: redis:alpine volumes: - redis_config:/usr/local/etc/redis/data - redis_data:/data networks: - myprojectname-network
postgres-db: container_name: postgres-db image: postgres:latest volumes: - postgres_config:/var/opt/postgres - postgres_data:/var/lib/postgresql/data networks: - myprojectname-network
pgadmin: container_name: pgadmin image: dpage/pgadmin4:latest volumes: - pgadmin_data:/var/lib/pgadmin networks: - myprojectname-network
volumes: rabbitmq_data: redis_data: redis_config: postgres_data: postgres_config: pgadmin_data:
networks: myprojectname-network: external: true
|
在microservice-solution/etc/docker目录下创建docker-compose.infrastructure.override.yml文件,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| version: '3.7'
services: rabbitmq: ports: - 5672:5672 - 15672:15672
redis: ports: - 6379:6379
postgres-db: ports: - 5432:5432 environment: POSTGRES_PASSWORD: "myPassw0rd"
pgadmin: ports: - 5050:80 environment: PGADMIN_DEFAULT_EMAIL: ${PGADMIN_DEFAULT_EMAIL:-pgadmin4@pgadmin.org} PGADMIN_DEFAULT_PASSWORD: ${PGADMIN_DEFAULT_PASSWORD:-admin}
|
创建运行脚本
在microservice-solution/etc/docker目录下创建up.ps1和dowm.ps1文件,内容如下:
up.ps1:
1 2
| docker network create myprojectname-network docker-compose -f docker-compose.infrastructure.yml -f docker-compose.infrastructure.override.yml up -d
|
down.ps1:
1 2
| docker-compose -f docker-compose.infrastructure.yml -f docker-compose.infrastructure.override.yml down docker network rm myprojectname-network
|
后续只需要运行up.ps1脚本即可启动所有的开发环境,运行down.ps1脚本即可关闭所有的开发环境。

在pgadmin中管理postgres数据库
pgadmin是一个管理postgres数据库的工具,我们可以使用它来管理我们的数据库。在上面的docker-compose.infrastructure.override.yml文件中,我们已经配置了pgadmin的端口为5050,所以启动开发环境后,我们可以通过http://localhost:5050来访问pgadmin。使用默认的账号密码登录即可,右下角可以选择Chinese (Simplified)切换为中文。

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

添加成功后,我们就可以在pgadmin中管理我们的数据库了。
参考资料