总体架构

    本平台从技术上采用ABP vNext.NET Core编写的微服务架构。客户端层主要以现代浏览器为主,适配了PC端和移动端的访问,采用API和应用程序进行交互,同时提供第三方使用的API,支持通过Web服务或消息代理与其他应用程序集成。数据工厂用于整合数据,将分散数据整合到一起,并进行汇总计算,采用统一数据接口向服务层提供数据支撑。如果您之前了解过数据仓库技术,就可以把数据工厂理解为ETL工具。应用支撑层采用Docker部署集群,使用 Kubernetes 进行容器编排和集群管理,静态文件资源使用第三方提供的 CDN 服务进行加速。

  • ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。

微服务概念

    微服务体系架构(简称微服务)是开发软件系统的一种架构风格,该架构试图集中精力构建具有明确定义的接口和操作的单功能模块。它将应用程序构建为以业务领域为模型的小型自治服务集合。近年来,随着企业希望变得更加敏捷并朝着DevOps和持续测试迈进,这一趋势变得越来越流行。

微服务的利与弊

    微服务不是灵丹妙药,通过微服务的实施,将暴露出团队沟通、合作以及其它以前可能隐含但现在被迫公开的问题。但是微服务中的API网关可以大大减少构建和质量检查的时间和精力。微服务体系结构是否适合您取决于您的业务场景复杂度,当业务不复杂,团队规模不大的时候,单块架构比微服务架构具有更高的生产率,因为它们各有优缺点。以下是一些优点和缺点:

  • 优点:

    • 微服务架构使开发人员可以自由地独立开发和部署服务;
    • 可以由相当小的团队来开发微服务;
    • 易于集成和自动部署(使用开源持续集成工具,例如Jenkis);
    • 易于扩展并与第三方服务集成;
    • 可以使用不同的语言来编写用于不同服务的代码;
    • 故障隔离:如果一个微服务失败,则另一个将继续工作。
  • 缺点:
    • 由于分布式部署,测试可能变得复杂;
    • 服务数量的增加可能会导致信息壁垒;
    • 作为分布式系统,可能会导致重复工作;
    • 当服务数量增加时,整个产品的集成和管理可能会变得复杂;
    • 开发人员必须付出额外的努力来实现服务之间的通信机制。

系统架构

    微服务层中提供了各种服务,服务之间使用http相互通信或者通过队列服务进行调度来支撑整个业务系统。其中基础服务提供了应用中心、模板中心、表单和流程引擎等功能;数据可视化服务提供数据展示分析包含模板管理、组件管理等功能;二、三维服务提供组件管理、图层管理、三维模型管理及空间分析等功能;Iot管控服务提供设备接入管理、协议解析、设备网关管理等功能;第三方服务与阿里云、腾讯云、华为云等服务商提供的云服务功能进行融合,并与钉钉、企业微信集成;系统管理服务提供整体系统管理功能包含租户管理、功能管理、权限管理、单点登录、企业组织管理等功能。同时系统提供统一日志、消息列队、定时任务、文件处理等服务。日志采用ELK(Elasticsearch、Logstash、Kibana)进行管理,Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;Logstash是一个用来搜集、分析、过滤日志的工具;Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。消息队列服务主要提供了各类通知消息的推送,使用队列的方式防止因消息过多导致推送服务过载。定时任务服务主要用于定时提醒、定时推送等功能。文件处理服务主要用于PDF打印、数据文件导入导出和二维码生成等功能。

持续集成(CI)、自动化构建

    个人理解持续集成是为了配合敏捷开发的速度和效率而产生的一个用于编译、测试、发布、部署的工具。为什么叫持续呢?其实就是编码人员提交了源码,那么该工具就可以进行编译,测试等一系列运作。怎么能够让编码人员很快的知道编码的异常。

工作流程:

基于 abp vNext 微服务开发的敏捷应用构建平台 - 框架分析的更多相关文章

  1. 基于 abp vNext 微服务开发的敏捷应用构建平台 - 文章目录

    系列文章: <基于 abp vNext 微服务开发的敏捷应用构建平台 - 设计构想> [点击查看] <基于 abp vNext 微服务开发的敏捷应用构建平台 - 文章目录> [ ...

  2. 基于 abp vNext 微服务开发的敏捷应用构建平台 - 项目介绍

    缘起 目前使用ABP框架已经将近3年了,大大小小的项目也陆陆续续做了很多.由于现有信息系统的架构模式是在底层的技术平台上直接构建信息系统并采用技术主导,使用业务无关的编程工具来开发信息系统的缺陷使得系 ...

  3. 基于 abp vNext 微服务开发的敏捷应用构建平台 - 设计构想

    许多中小企业的管理模式都是在自身的发展过程中不断摸索,逐步建立起来的,每一家都有其独有的管理模式,而且随着企业的不断发展,管理模式也在不断变化中.企业在发展壮大的过程中离不开信息化系统的支撑,企业在构 ...

  4. [Abp vNext微服务实践] - vue-element-admin管理Identity

    一.简介 abp vNext微服务框架中已经提供通用权限和用户角色管理模块,管理UI使用的是MVC模式,不适用于国内主打的MVVM开发模式.在前端框架选型后笔者决定改造abp vNext微服务框架中原 ...

  5. [Abp vNext微服务实践] - 业务开发

    前几篇分别介绍了abp vNext微服务框架.开发环境搭建和vue element admin前端框架接入,在vue element admin中实现用户角色管理基本功能后就可以开始进行业务开发了,本 ...

  6. abp vNext微服务框架分析

    本文转载自:https://www.cnblogs.com/william-xu/p/11245738.html abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了 ...

  7. [Abp vNext微服务实践] - 框架分析

    一.简介 abp vNext新框架的热度一直都很高,于是最近上手将vNext的微服务Demo做了一番研究.我的体验是,vNext的微服务架构确实比较成熟,但是十分难以上手,对于没有微服务开发经验的.n ...

  8. [Abp vNext微服务实践] - 文章目录

    简介 ABP vNext是volosoft的新一代框架,ABP(vNext)完全使用.NET CORE和DDD(领域驱动)打造,目前GitHub已有6K+次提交,发布版本超过40次,Nuget包下载量 ...

  9. [Abp vNext微服务实践] - 租户登录

    简介 Abp vNext微服务授权验证基于ids4,实现租户登录需要在授权服务中获取token,和之前的介绍的登录方式一样,只是多了tenant参数.本篇将介绍在Abp vNext授权服务中启用多租户 ...

随机推荐

  1. PHP 超级全局变量 $_GET

    https://www.php.cn/php/php-superglobals.html https://m.php.cn/code/11853.html

  2. Helium文档5-WebUI自动化-press模拟键盘按键输入技巧

    前言 press方法是用来模拟键盘按键输入,可以组合使用,来模拟键盘输入,解决一些难定位的元素 入参介绍 以下是press源码中的函数介绍 def press(key):  :入参 :param ke ...

  3. 微信小程序分类的实现

    微信小程序的分类功能思路 实现思路 1.把屏幕当成一个固定的盒子,然后把盒子分成两边,并让盒子的每一边都能够滚动. 2.通过将左侧边栏元素的id和右边内容的categoryId进行匹配,渲染展示相同i ...

  4. Linux入门到放弃之八《任务计划管理》

    任务计划管理 1.每周一下午5:50将/data目录下的所有目录和文件归档并压缩为:backup.tar.gz 放在/home/backup目录下. 先新建/data目录,并在目录中随意生成几个文件 ...

  5. 读高性能Mysql摘要

    类型相关 INT(1)和INT(20)对于存储和计算来说,意义是相同的,他不会限制值的合法范围,只是一些交互工具会用来显示字符的个数 默认是有符号的,可以指定为无符号,增加数据存储范围,如0-255, ...

  6. 最全总结 | 聊聊 Python 办公自动化之 Excel(上)

    1. 前言 在我们日常工作中,经常会使用 Word.Excel.PPT.PDF 等办公软件 但是,经常会遇到一些重复繁琐的事情,这时候手工操作显得效率极其低下:通过 Python 实现办公自动化变的很 ...

  7. jdk1.8特性2

    public class User { private Long id; private String userName; private String roleName; private Strin ...

  8. Boxing

    测试自动装箱和自动拆箱,意思是运行的时候编译器帮我们加了两个代码: public class AutoBoxingandUnBoxing { public static void main(Strin ...

  9. SpringBoot原理发现(一)

    说明: 本系列基于SpringBoot 2.2.9.RELEASE 版本,对SpringBoot的原理进行分析,一共分为四节: SpringBoot原理发现(一):创建Hello World,对pom ...

  10. 【Java GC系列】垃圾收集简介(1)

    说明: 在本文中, Garbage Collection 翻译为 "垃圾收集", garbage collector 翻译为 "垃圾收集器"; 一般认为, 垃圾 ...