总体架构

    本平台从技术上采用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. 第二十章 nginx常见问题

    一.Nginx常见问题 一.nginx多server优先级 在开始处理一个http请求时,nginx会取出header头中的Host变量,与nginx.conf中的每个server_name进行匹配, ...

  2. 笔记本电脑插网线能上网,但是连不上WIFI,或者连上WiFi显示无internet,怎么解决?

    1.鼠标 右键 "此电脑",选择"属性"

  3. IDEA提示类注释的wrong tag警告的解决办法

    当创建一个类的时候,给类写上注释时,出现类似于"Wrong tag 'date' less... (Ctrl+F1)"这种警告,解决方式是: alt + enter -> a ...

  4. WAI-ARIA无障碍网页资料

    一.ARIA是啥? WAI-ARIA指无障碍网页应用.主要针对的是视觉缺陷,失聪,行动不便的残疾人以及假装残疾的测试人员.尤其像盲人,眼睛看不到,其浏览网页则需要借助辅助设备,如屏幕阅读器,屏幕阅读机 ...

  5. java-try catch中return在finally之前 还是之后执行

    finally语句在return语句执行之后return返回之前执行的. finally块中的return语句会覆盖try块中的return返回. 如果finally语句中没有return语句覆盖返回 ...

  6. Spring学习-Bean的基本概念知识

    4月份开始复习一遍spring相关知识.让自己巩固一下spring大法的深奥益处,所以就看了大佬的博客,转载留下来日后继续研读.认为重点的标记为红色 转载自:http://www.cnblogs.co ...

  7. Mybatis---02Mybatis执行过程分析

    1.在动态代理中,执行MapperMethod类里面的execute方法,这个方法里面最终是调用DefaultSqlSession类中的相关操作方法.接着之前的文章继续,在DefaultSqlSess ...

  8. 正式班D16

    2020.10.27星期二 正式班D16 目录 9.9 字符处理命令 9.9.1 sort排序 9.9.2 uniq去重 9.9.3 cut处理规律文本 9.9.4 tr替换 9.9.5 wc统计 9 ...

  9. 码农会锁,synchronized 对象头结构(mark-word、Klass Pointer)、指针压缩、锁竞争,源码解毒、深度分析!

    作者:小傅哥 博客:https://bugstack.cn 沉淀.分享.成长,让自己和他人都能有所收获! 一.前言 感觉什么都不会,从哪开始呀! 这是最近我总能被问到的问题,也确实是.一个初入编程职场 ...

  10. Redis可以做哪些事?

    Redis是一种基于键值对的NoSQL数据库,它的值主要由string(字符串),hash(哈希),list(列表),set(集合),zset(有序集合)五种基本数据结构构成,除此之外还支持一些其他的 ...