zoukankan      html  css  js  c++  java
  • 基于 abp vNext 微服务开发的敏捷应用构建平台

    环境准备

    ABP vNext 微服务官方介绍的系统架构图如下:

    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

    Docker for Windows

    开发环境搭建

    获取项目源码

    通过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 - 文档文件
      • images
      • releases
    • 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.props
      • Microservice.sln
    • .dockerignore
    • .gitignore
    • docker-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
    
    
  • 相关阅读:
    Objective-C Loops
    HDU 4757 Tree(可持久化Trie+Tarjan离线LCA)
    Codeforces Round #367 (Div. 2) D. Vasiliy's Multiset(可持久化Trie)
    HDU 5416 CRB and Tree(前缀思想+DFS)
    HDU 3695 Computer Virus on Planet Pandora(AC自动机模版题)
    HDU 2222 Keywords Search(AC自动机模版题)
    POJ 2697 A Board Game(Trie判重+BFS)
    HDU 4287 Intelligent IME(字典树数组版)
    HDU 1160 FatMouse's Speed(要记录路径的二维LIS)
    HDU 1565&1569 方格取数系列(状压DP或者最大流)
  • 原文地址:https://www.cnblogs.com/zypblog/p/14018873.html
Copyright © 2011-2022 走看看