技术架构

  • 框架概要

现有产品问题

  • 用户多,分布广泛;维护难。
  • 大流量,数据请求量大;大数据请求加载数据慢。
  • 垂直式开发;维护难,版本升级混乱。
  • 功能多,变更快,频繁发布,升级出现未知问题。
  • 未模块、组件式开发,影响开发效率和bug修复。
  • 以用户为中心,用户需求变更造成版本过多。

 

1、传统系统架构,耦合性太高,需求变化之后需要大量二次开发。本架构低耦合高内聚,开发升级周期短;

2、传统系统架构无法适应海量数据存储计算。本架构可以满足海量并发计算;

3、传统架构集成难度大,接口适应差。本架构可以适配各种流式/消息队列/文本各类接口。

4、本架构使用最新开源技术,支持分布式部署,保证架构先进性

 

分布式架构特点

  • 系统拆分
    1. 对于一个复杂系统,首先对其分拆,拆成多个子系统。每个子系统自己的存储/Service/接口层,各个子系统独立开发、测试、部署、运维。 解决性能瓶颈、方便维护升级。
  • 分库分表
    1. 因公司产品数据量巨大,已达到大数据级别,后续对产品进行分库、分表存储。
  • 系统模块、组件化
    1. 系统复杂、构建效率慢,后续对产品模块化、组件化、高内聚,内耦合,提高复用性,扩展性。
  • 面向接口开发
    1. 公司产品多、技术架构不统一、语言(VB、C#、JAVA)不统一,产品系统数据对接、维护困难,后续架构以面向服务方式提供接口,解决各业务组件之间相互交互问题。

 

二、框架特点

  • 采用目前安全性高、扩展性好,框架技术最完善的JAVA语言作为框架开发语言
  • 采用springboot+springcloud,使框架具有分层开发、模块开发、接口实现数据的沟通,使系统有极强的扩展性
  • 基于模块组件开发,方便平台模块快速组装
  • 与OS、中间件、数据库系统无关
  • 所使用技术开源免费
  • 支持分布式部署、监控
  • 支持大数据存储、分析、计算

技术架构

三、框架设计说明

框架架构图

技术架构

架构层次说明

客户层

 

展现层

基于HTML/HTML5/Vue/CSS3开发web前端页面,兼容主流浏览器。展现层和数据层完全分离,通过跨域实现前后端数据通信。

 

业务层

核心业务基于Spring Cloud 架构实现微服务化。

 

数据层

对于平台中的所有应用,都存在着各种各样的配置信息、业务数据、系统运行状态等信息。数据库层对这些数据信息本身进行归档,提供快速查询的底层接口,并保证数据的完整性、可靠性。

在数据库方面, 框架可以无缝对接主流关系性数据库的包括 PostgreSQL、Oracle、Mysql 和 MSSql。

 

基础服务层

用户权限管理

日志服务管理

模型管理

缓存服务管理

任务调度

四、框架技术架构图

技术架构

 

 

 

 

 

 

技术版本列表

序号

前/后/数据库

技术

版本

说明

  1.  

前端

Jquery

3.x

Js工具类

  1.  

VUE

2.5

Js工具类

  1.  

Bootstrap

4.0.0

基于jqueryUI框架

  1.  

iView

3.x

基于vue的UI框架

  1.  

echarts

4.x

图表展示组件

  1.  

Spreadjs

v11.2

报表展示组件

  1.  

yFiles

待定

可视化组件

  1.  

后端

JDK

1.8

 

  1.  

SpringBoot

2.x

底层框架

  1.  

SpringCloud

Dalston.SR5

微服务解决方案

  1.  

Shiro

1.3

安全(授权)框架

  1.  

Activiti

6.x

工作流

  1.  

Druid

1.x

连接池

  1.  

FastJosn

1.2x

Json处理

  1.  

大数据

PostgreSQL

10.4

关系性数据库

  1.  

Redis

4.0

内存性数据库

  1.  

Elasticsearch

6.2

搜索引擎

 

五、技术说明

SpringBoot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程

特点

1. 创建独立的Spring应用程序

2. 嵌入的Tomcat,无需部署WAR文件

3. 简化Maven配置

4. 自动配置Spring

5. 提供生产就绪型功能,如指标,健康检查和外部配置

6. 绝对没有代码生成和对XML没有要求配置

Spring Boot非常契合微服务的概念,可以结合Spring Boot与Spring Cloud和Docker技术来构建微服务并部署到云端:

一个可执行jar即为一个独立服务

很容易加载到容器,每个服务可以在自己的容器(例如docker)中运行

通过一个脚本就可以实现配置与部署,很适合云端部署,并且自动扩展也更容易

简单而言,即Spring Boot使编码更简单,使配置更简单,使部署更简单,使监控更简单。

 

SpringCloud

SpringCloud是基于SpringBoot的一套实现微服务的框架。

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

技术架构

 

SpringCloud 组件架构图

技术架构

技术架构

Shiro

Apache Shiro™是一个功能强大且易于使用的Java安全框架,可执行身份验证,授权,加密和会话管理。借助Shiro易于理解的API,您可以快速轻松地保护任何应用程序 - 从最小的移动应用程序到最大的Web和企业应用程序。

Shiro特性

技术架构

shiro除了基本的认证,授权,会话管理,加密之外,还有许多额外的特性

 

Shiro架构图:

技术架构

ElasticSearch

Elasticsearch:是个开源分布式搜索引擎,提供搜集、分析、存储数据三大功能。它的特点有:分布式,零配置,自动发现,索引自动分片,索引副本机制,restful风格接口,多数据源,自动搜索负载等。