Skip to content

织信技术架构

架构愿景

架构目标

  1. 高可用。自动化运维,整体系统可用性高,故障率低。
  2. 高扩展性。系统架构简单清晰,应用系统间耦合低,容易水平扩展,业务功能增删改查方便快捷。
  3. 可伸缩。通过硬件的增加和减少,提高/降低处理能力。
  4. 安全性。提供安全访问和数据加密,安全存储等策略。

应用架构

  1. 稳定性原型。一切以稳定为中心;架构尽可能简单、清晰;不过度设计。
  2. 解耦/拆分。核心业务与非核心业务分离; 主流程与辅流程分离。
  3. 抽象化。应用只依赖服务抽象,不依赖服务器实现细节;服务器抽象化:应用虚拟化部署,动态调配资源。
  4. 容错设计。应用系统集群,避免单点;服务自治:服务能独立彼此修改、部署、发布和管理。
  5. 松耦合。不同业务域之间、核心与非核心业务之间异步解耦

技术架构

technical-8.png

前端

  • 基础UI库选型:Vue
  • 基础UI库选型:Element-UI
  • 开发语⾔标准:使⽤ES5、ES6、ES7语⾔标准
  • 语⾔规范检查:使⽤eslint对代码进⾏检查
  • ⼯程依赖管理:使⽤npm管理⼯程依赖
  • ⼯程打包⽅式:使⽤Webpack4
  • 浏览器兼容控:使⽤babel7,将ES6、ES7语法转换为ES5交付,postcss进⾏浏览器⾃动样式兼容

后端

  • 开发语⾔选型:JAVA(jdk11)
  • 基础框架选型:SpringBoot2
  • 数据库:Postgres13或以上
  • 缓存:Redis 5
  • 文件存储服务:支持符合 S3 标准的文件对象服务(如:腾讯云 COS、阿里云 OSS、Amazon S3、Minio等)
  • 消息队列服务:RabbitMQ
  • 服务器监控:SpringBoot Admin

部署架构

technical-2.png

高并发解决方案

  • 集群部署:所有节点可以集群部署,避免单点
  • 文件图片服务器分离:使用S3对象存储服务
  • 分布式缓存:采用Redis缓存
  • CDN:静态资源缓存,减轻服务器负载
  • 限流:采用Redis分布式限流

扩展能力

自动化

提供了一种图形化的编程环境,利用自动化步骤的组合实现程序逻辑 img_2.png

脚本

使用javascript语言作为脚本语言,在织信使用脚本可以实现无法配置的高级功能 img.pngimg_1.pngWebAPI

通过API模块,用户可以配置URL到自动化或者脚本的映射关系,基于此映射外部系统访问HTTP链接调用系统功能

img_3.png