環境准備
ABP vNext 微服務官方介紹的系統架構圖如下:

運行要求
- SQL Server 2015+ (可以是 express edition)
- Redis 5.0+
- RabbitMQ 3.7.11+
- MongoDB 4.0+
- ElasticSearch 6.6+
- Kibana 6.6+ (可選,建議顯示日志)
我所使用的環境
- Windows 10 專業版
- Docker Desktop
- Visual Studio 2019
- .Net Core 3.1-buster
- SQL Server latest
- MySQL 5.7
- Redis alpine
- RabbitMQ 3-management-alpine
- MongoDB latest
- ElasticSearch 7.8.0
- Logstash 7.8.0
- Kibana 7.8.0
項目源碼:【Github】
https://github.com/zhang8043/AgileWork
安裝 Visual Studio 2019
下載 Visual Studio
通過官方下載Visual Studio:【下載 Visual Studio】
https://visualstudio.microsoft.com/zh-hans/downloads/
Visual Studio 2019安裝教程
官方Visual Studio安裝教程:【安裝教程】
https://docs.microsoft.com/zh-cn/visualstudio/install/install-visual-studio?view=vs-2019
Windows下安裝Docker
下載Docker for Windows安裝文件:【下載 Docker Desktop】
https://www.docker.com/products/docker-desktop
運行安裝文件
雙擊下載的 Docker for Windows Installer 安裝文件,一路 Next,點擊 Finish 完成安裝。
鏡像加速
此處使用阿里雲的加速器,因為在使用docker的時候,會需要從docker的網站下載鏡像文件,下載速度可能會很慢。獲得阿里雲加速,需要登錄阿里雲開發者平台,然后點擊右側的管理中心(當然你得要有一個賬戶):
阿里雲容器鏡像服務:【鏡像加速】
https://cr.console.aliyun.com/

- 復制紅色方框中的代碼,打開CMD,粘貼進去替換
個人Key就可以運行
docker-machine create --engine-registry-mirror=https://個人Key.mirror.aliyuncs.com -d virtualbox default
或
- 打開Docker for Windows點擊
Settings-Docker Engine配置registry-mirrors

開發環境搭建
獲取項目源碼
通過GitHub獲取項目源碼:【獲取源碼】
https://github.com/zhang8043/AgileWork
項目結構
_run__Open_Browser.ps1- 打開瀏覽器__Run_All_Service.ps1- 運行全部項目__Run_Docker_Service.ps1- 運行項目到 Docker__Run_Infrastructure.ps1- 運行 Docker 基礎設施__Stop_Docker_Service.ps1- 停止 Docker 項目__Stop_Infrastructure.ps1- 停止 Docker 基礎設施01_AuthServer.ps1- 運行授權服務02_BackendAdminService.ps1- 運行后台管理服務03_InternalGateway.ps1- 運行內部網關04_BackendAdminGateway.ps1-運行后台管理網關
data- 數據庫文件docs- 文檔文件imagesreleases
elk- ELK 日志配置logs- Docker 項目運行日志service- 后台服務auth- 授權- AuthServer.Host - 授權服務
framework- 框架gateways- 網關- BackendAdminGateway.Host -后台管理網關
- InternalGateway.Host - 內部網關
microservices- 服務- BackendAdminService.Host - 后台管理服務
modules- 模塊- account - 賬戶
- audit-logging - 日志
- backend-admin - 后台
- feature-management - 功能
- file-management - 文件
- identity - 身份認證
- identityServer - 認證服務
- permissions-management - 權限
- setting-management - 設置
- tenant-management - 租戶
shared- 共有common.propsMicroservice.sln
.dockerignore.gitignoredocker-compose.infrastructure.override.yml- Docker 基礎設施(環境變量、參數)docker-compose.infrastructure.yml- Docker 基礎設施docker-compose.override.yml- Docker 項目運行(環境變量、參數)docker-compose.yml- Docker 項目運行README.md
Docker 運行
在 項目根目錄 下運行 docker-compose 命令或使用 PowerShell 運行 _run 文件夾下的腳本
運行基礎設施環境
使用 PowerShell 運行 _run 文件夾下的 __Run_Infrastructure.ps1 腳本或:
docker-compose -f docker-compose.infrastructure.yml -f docker-compose.infrastructure.override.yml up -d
根據個人配置修改以下docker-compose文件,將yourStrong(!)Password修改為個人密碼
docker-compose.infrastructure.yml
version: '3.7'
services:
mysql:
image: 'mysql:5.7'
restart: always
container_name: microservice_mysql
volumes:
- ./data/mysql:/var/lib/mysql
sqlserver:
image: mcr.microsoft.com/mssql/server
container_name: microservice_sqlserver
volumes:
- dbdata:/var/opt/mssql
mongodb:
image: mongo
container_name: microservice_mongo
rabbitmq:
image: 'rabbitmq:3-management-alpine'
container_name: microservice_rabbitmq
redis:
image: redis:alpine
container_name: microservice_redis
elasticsearch:
image: 'docker.elastic.co/elasticsearch/elasticsearch:7.8.0'
container_name: microservice_elasticsearch
volumes:
- esdata:/usr/share/elasticsearch/data
logstash:
image: 'docker.elastic.co/logstash/logstash:7.8.0'
container_name: microservice_logstash
depends_on:
- elasticsearch
kibana:
image: 'docker.elastic.co/kibana/kibana:7.8.0'
container_name: microservice_kibana
depends_on:
- elasticsearch
volumes:
dbdata:
esdata:
docker-compose.infrastructure.override.yml
version: '3.7'
services:
mysql:
environment:
MYSQL_ROOT_PASSWORD: yourStrong(!)Password
command:
--default-authentication-plugin=mysql_native_password
--character-set-server=utf8mb4
--collation-server=utf8mb4_general_ci
--explicit_defaults_for_timestamp=true
--lower_case_table_names=1
--default-time-zone=+8:00
ports:
- 3306:3306
sqlserver:
volumes:
- ./data/mssql:/var/opt/mssql/data
environment:
- SA_PASSWORD=yourStrong(!)Password
- ACCEPT_EULA=Y
ports:
- '1433:1433'
mongodb:
ports:
- '27017:27017'
rabbitmq:
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: yourStrong(!)Password
ports:
- '15672:15672'
- '5672:5672'
redis:
ports:
- '6379:6379'
elasticsearch:
volumes:
- ./elk/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml:ro
environment:
- 'ES_JAVA_OPTS=-Xms512m -Xmx512m'
ports:
- '9200:9200'
logstash:
volumes:
- ./elk/logstash/config/logstash.yml:/usr/share/logstash/config/logstash.yml:ro
- ./elk/logstash/pipeline:/usr/share/logstash/pipeline:ro
environment:
- 'LS_JAVA_OPTS=-Xmx256m -Xms256m'
ports:
- '9600'
- '5000'
kibana:
volumes:
- ./elk/kibana/config/:/usr/share/kibana/config:ro
ports:
- 5601:5601
