总体架构

    本平台从技术上采用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. linux(centos8):安装jmeter5.3

    一,jmeter的用途: Apache JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试, 它最初被设计用于Web应用测试,但后来扩展到其他测试领域.  Apach ...

  2. UEditor 自定义图片视频尺寸校验

    UEditor支持单图.多图以及视频上传,编辑器配置项支持文件格式.文件大小校验,对于文件宽高尺寸校验暂不支持.这里记录一下自定义图片.视频尺寸校验过程,内容核心主要是扩展校验逻辑和增加自定义提示文本 ...

  3. matplotlib作图 归零编码、曼切斯特编码、非归零编码、差分曼切斯特编码

    效果图 代码 import matplotlib.pyplot as plt config = { 'color': 'black', 'lw': 5, } def init(): plt.figur ...

  4. 2020主流国产BI产品对比

    国产BI软件由于具备较强的本土特性,可以很好地适应国内用户的使用习惯,越来越多被国内用户使用.目前国内BI产品很多,可谓百家争鸣,如何从众多的BI产品中选择适合自己的呢?这里我们对比一下目前国内主流的 ...

  5. SpringMVC异常的处理机制

    SpringMVC异常的处理机制 处理流程图 其本质还是把异常交给SpringMVC框架来处理 系统的dao.service.controller出现异常都通过throws Exception向上抛出 ...

  6. 三种方式获取SSMS连接密码

    内网渗透是有的时候会遇到对方SSMS没断开连接正连着别的机器的mssql此时有两种方法可以获取sa密码 当密码强度较弱时可以使用第一只方式,第一种方式解不开的情况下可以使用后面二种方式 1.直接查询s ...

  7. Java中的微信支付(2):API V3 微信平台证书的获取与刷新

    1. 前言 在Java中的微信支付(1):API V3版本签名详解一文中胖哥讲解了微信支付V3版本API的签名,当我方(你自己的服务器)请求微信支付服务器时需要根据我方的API证书对参数进行加签,微信 ...

  8. VM Linux (Centos)联网

    今天新建一个linux突然发现不能上网,然后百度好多都不行,最后还是解决掉了,这是我的配置方法 鼠标左击虚拟机(或者选中之后直接设置),找到设置选项,打开网络适配器,设为NAT模式 然后进入虚拟机,进 ...

  9. Java学习的第五十四天

    1.例13.1二次函数的解 import java.util.Scanner; public class Cjava { public static void main(String[]args) { ...

  10. PHP 获取当前页面的URL信息

    //获取当前的域名: echo $_SERVER['SERVER_NAME']; //获取来源网址,即点击来到本页的上页网址 echo $_SERVER["HTTP_REFERER" ...