Appearance
织信技术架构
架构愿景
架构目标
- 高可用。自动化运维,整体系统可用性高,故障率低。
- 高扩展性。系统架构简单清晰,应用系统间耦合低,容易水平扩展,业务功能增删改查方便快捷。
- 可伸缩。通过硬件的增加和减少,提高/降低处理能力。
- 安全性。提供安全访问和数据加密,安全存储等策略。
应用架构
- 稳定性原型。一切以稳定为中心;架构尽可能简单、清晰;不过度设计。
- 解耦/拆分。核心业务与非核心业务分离; 主流程与辅流程分离。
- 抽象化。应用只依赖服务抽象,不依赖服务器实现细节;服务器抽象化:应用虚拟化部署,动态调配资源。
- 容错设计。应用系统集群,避免单点;服务自治:服务能独立彼此修改、部署、发布和管理。
- 松耦合。不同业务域之间、核心与非核心业务之间异步解耦
技术架构
前端
- 基础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
部署架构
高并发解决方案
- 集群部署:所有节点可以集群部署,避免单点
- 文件图片服务器分离:使用S3对象存储服务
- 分布式缓存:采用Redis缓存
- CDN:静态资源缓存,减轻服务器负载
- 限流:采用Redis分布式限流
扩展能力
自动化
提供了一种图形化的编程环境,利用自动化步骤的组合实现程序逻辑
脚本
使用javascript语言作为脚本语言,在织信使用脚本可以实现无法配置的高级功能 WebAPI
通过API模块,用户可以配置URL到自动化或者脚本的映射关系,基于此映射外部系统访问HTTP链接调用系统功能