【ABP框架实践】从零构建微服务解决方案 - 准备工作

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.ps1dowm.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)切换为中文。

pgadmin

登录成功后,在首页点添加服务器,在弹出的对话框中,填写如下信息:

  • 名称:随便填写
  • 主机:postgres-db
  • 端口:5432
  • 用户名:postgres
  • 密码:myPassw0rd

添加服务器

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

参考资料

文章作者: Ender
文章链接: https://www.fengyeju.net/archives/building-microservice-with-abp-framework-part-1-getting-started
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 枫叶居