736 lines
25 KiB
Markdown
736 lines
25 KiB
Markdown
# 福建水务营收系统架构设计文档
|
||
|
||
## 文档信息
|
||
| 项目信息 | 详情 |
|
||
|---------|------|
|
||
| **项目名称** | 福建水务营收系统 |
|
||
| **文档类型** | 概要设计文档 |
|
||
| **技术框架** | RuoYi-Vue-Pro + yudao-ui-admin-vue3 |
|
||
| **文档版本** | v1.0 |
|
||
| **编写日期** | 2024-12-19 |
|
||
| **文档状态** | ✅ 已完成 |
|
||
|
||
## 目录
|
||
- [系统架构概述](#系统架构概述)
|
||
- [技术架构](#技术架构)
|
||
- [应用架构](#应用架构)
|
||
- [数据架构](#数据架构)
|
||
- [安全架构](#安全架构)
|
||
- [部署架构](#部署架构)
|
||
- [接口架构](#接口架构)
|
||
|
||
## 系统架构概述
|
||
|
||
福建水务营收系统采用多层架构设计,旨在支持集团化的集中管理、统一资源管理的业务需求。系统架构的设计目标是实现"一个业务平台、一网通平台"的建设目标,为集团及下属各分公司提供统一的营业收费系统。
|
||
|
||
系统架构主要包括以下核心特点:
|
||
- 多租户架构:支持集团、分公司、营业站点的多层级租户管理模式
|
||
- 统一资源服务:统一的数字水务系统运行资源环境
|
||
- 统一平台应用:统一业务流程,集中汇集数据
|
||
- 统一对外接口:提供标准的接口和能力
|
||
|
||
### 系统总体架构图
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph USER["用户层"]
|
||
A1[Web管理端<br/>yudao-ui-admin-vue3]
|
||
A2[移动抄表端<br/>uni-app]
|
||
A3[客户微信端<br/>微信小程序]
|
||
A4[客户支付宝端<br/>支付宝小程序]
|
||
end
|
||
|
||
subgraph GATEWAY["网关层"]
|
||
B1[Nginx负载均衡]
|
||
B2[API网关<br/>统一认证/权限控制]
|
||
end
|
||
|
||
subgraph APP["应用层"]
|
||
C1[营收管理<br/>RuoYi-Vue-Pro]
|
||
C2[客户服务<br/>RuoYi-Vue-Pro]
|
||
C3[表务管理<br/>RuoYi-Vue-Pro]
|
||
C4[统计分析<br/>RuoYi-Vue-Pro]
|
||
end
|
||
|
||
subgraph SERVICE["服务层"]
|
||
D1[权限服务<br/>Spring Security]
|
||
D2[工作流服务<br/>Flowable]
|
||
D3[消息服务<br/>Redis MQ]
|
||
D4[文件服务<br/>MinIO/OSS]
|
||
end
|
||
|
||
subgraph DATA["数据层"]
|
||
E1[(OpenGauss 5.0+<br/>主从架构)]
|
||
E2[(Redis 6.0<br/>集群缓存)]
|
||
E3[文件存储<br/>分布式存储]
|
||
end
|
||
|
||
subgraph EXTERNAL["外部接口"]
|
||
F1[银行接口<br/>代扣/托收]
|
||
F2[支付接口<br/>微信/支付宝]
|
||
F3[短信接口<br/>阿里云/腾讯云]
|
||
F4[物联网接口<br/>智能水表]
|
||
end
|
||
|
||
%% 层级间调用关系
|
||
USER -.->|请求访问| GATEWAY
|
||
GATEWAY -.->|负载均衡<br/>路由转发| APP
|
||
APP -.->|服务调用| SERVICE
|
||
APP -.->|外部集成| EXTERNAL
|
||
SERVICE -.->|数据访问| DATA
|
||
```
|
||
|
||
### 物理部署架构图
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph DMZ["DMZ区域"]
|
||
subgraph "负载均衡集群"
|
||
LB1[负载均衡器<br/>Nginx Cluster]
|
||
WAF[Web应用防火墙]
|
||
end
|
||
end
|
||
|
||
subgraph APPZONE["应用服务区"]
|
||
subgraph "Web服务集群"
|
||
WEB1[Web服务器1<br/>8核32G]
|
||
WEB2[Web服务器2<br/>8核32G]
|
||
end
|
||
|
||
subgraph "应用服务集群"
|
||
APP1[应用服务器1<br/>16核64G]
|
||
APP2[应用服务器2<br/>16核64G]
|
||
end
|
||
end
|
||
|
||
subgraph DATAZONE["数据服务区"]
|
||
subgraph "数据库集群"
|
||
DB1[OpenGauss主库<br/>32核128G]
|
||
DB2[OpenGauss从库<br/>32核128G]
|
||
end
|
||
|
||
subgraph "缓存集群"
|
||
REDIS1[Redis主节点<br/>16核32G]
|
||
REDIS2[Redis从节点<br/>16核32G]
|
||
REDIS3[Redis哨兵<br/>8核16G]
|
||
end
|
||
|
||
subgraph "文件存储"
|
||
FILE1[文件服务器1<br/>8核32G 10TB]
|
||
FILE2[文件服务器2<br/>8核32G 10TB]
|
||
end
|
||
end
|
||
|
||
subgraph MGMT["管理服务区"]
|
||
MONITOR[监控服务器<br/>8核16G]
|
||
BACKUP[备份服务器<br/>8核32G 20TB]
|
||
JUMP[跳板服务器<br/>4核8G]
|
||
end
|
||
|
||
%% 区域间调用关系
|
||
Internet -.->|外网访问| DMZ
|
||
DMZ -.->|负载均衡<br/>安全过滤| APPZONE
|
||
APPZONE -.->|数据访问<br/>业务处理| DATAZONE
|
||
MGMT -.->|监控管理<br/>备份恢复| DATAZONE
|
||
MGMT -.->|系统监控<br/>运维管理| APPZONE
|
||
```
|
||
|
||
## 技术架构
|
||
|
||
系统采用B/S和M/S相结合的架构模式,基于现代化的技术栈构建。
|
||
|
||
### 技术栈总览
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph FRONTEND["🏷 前端技术栈"]
|
||
FE1["Vue 3 + TypeScript<br/>Element Plus UI"]
|
||
FE2["Vite + Pinia<br/>Router + Axios"]
|
||
end
|
||
|
||
subgraph BACKEND["📦 后端技术栈"]
|
||
BE1["Spring Boot 3.x<br/>Spring Security"]:::spring
|
||
BE2["MyBatis Plus<br/>OpenGauss"]:::db
|
||
BE3["Redis缓存<br/>Knife4j文档"]:::cache
|
||
end
|
||
|
||
subgraph MIDDLEWARE["⚙️ 中间件服务"]
|
||
MW1["Nginx负载均衡<br/>Redis集群"]
|
||
MW2["Flowable工作流<br/>Quartz定时"]
|
||
MW3["MinIO存储<br/>消息队列"]
|
||
end
|
||
|
||
subgraph MOBILE["📱 移动应用"]
|
||
MB1["uni-app跨平台<br/>uView UI"]
|
||
MB2["微信/支付宝小程序<br/>H5响应式"]
|
||
MB3["GPS定位+NFC<br/>设备接口"]
|
||
end
|
||
|
||
%% 技术栈间调用关系
|
||
FRONTEND -.->|HTTP请求<br/>API调用| BACKEND
|
||
MOBILE -.->|跨平台调用<br/>API集成| BACKEND
|
||
BACKEND -.->|服务集成<br/>中间件调用| MIDDLEWARE
|
||
|
||
classDef spring fill:#6db33f,color:white
|
||
classDef db fill:#f9d27d
|
||
classDef cache fill:#b5e6c0
|
||
```
|
||
|
||
### 系统数据流向图
|
||
|
||
```mermaid
|
||
flowchart TD
|
||
subgraph COLLECT["数据采集层"]
|
||
A1[移动抄表APP<br/>数据采集]
|
||
A2[智能水表<br/>远程数据]
|
||
A3[Web管理端<br/>业务录入]
|
||
A4[客户端小程序<br/>用户数据]
|
||
A5[外部系统<br/>接口数据]
|
||
end
|
||
|
||
subgraph ACCESS["数据接入层"]
|
||
B1[API网关<br/>数据验证]
|
||
B2[数据清洗<br/>格式转换]
|
||
B3[消息队列<br/>异步处理]
|
||
B4[数据缓存<br/>临时存储]
|
||
end
|
||
|
||
subgraph PROCESS["业务处理层"]
|
||
C1[抄表服务<br/>水量计算]
|
||
C2[收费服务<br/>账单生成]
|
||
C3[账务服务<br/>财务处理]
|
||
C4[工单服务<br/>流程处理]
|
||
C5[统计服务<br/>数据分析]
|
||
end
|
||
|
||
subgraph STORAGE["数据存储层"]
|
||
D1[(OpenGauss主库<br/>核心业务数据)]
|
||
D2[(OpenGauss从库<br/>查询数据)]
|
||
D3[(Redis缓存<br/>热点数据)]
|
||
D4[文件存储<br/>附件图片]
|
||
D5[(备份库<br/>历史数据)]
|
||
end
|
||
|
||
subgraph SERVICE["数据服务层"]
|
||
E1[查询服务<br/>数据检索]
|
||
E2[报表服务<br/>统计分析]
|
||
E3[接口服务<br/>对外开放]
|
||
E4[推送服务<br/>消息通知]
|
||
end
|
||
|
||
subgraph PRESENT["数据展现层"]
|
||
F1[管理后台<br/>业务操作]
|
||
F2[统计大屏<br/>可视化展示]
|
||
F3[移动端<br/>现场作业]
|
||
F4[客户端<br/>自助服务]
|
||
F5[第三方系统<br/>数据集成]
|
||
end
|
||
|
||
%% 数据流向关系
|
||
COLLECT -.->|数据采集<br/>格式验证| ACCESS
|
||
ACCESS -.->|数据接入<br/>清洗转换| PROCESS
|
||
PROCESS -.->|业务处理<br/>数据持久化| STORAGE
|
||
STORAGE -.->|数据查询<br/>统计分析| SERVICE
|
||
SERVICE -.->|数据服务<br/>接口调用| PRESENT
|
||
PRESENT -.->|用户反馈<br/>业务交互| PROCESS
|
||
```
|
||
|
||
### 服务端技术架构
|
||
|
||
系统采用基于RuoYi-Vue-Pro框架的技术架构:
|
||
|
||
- **操作系统**:国产 Linux 操作系统
|
||
- **数据库**:华为OpenGauss 5.0+数据库,企业级国产数据库
|
||
- **应用框架**:基于RuoYi-Vue-Pro框架定制开发
|
||
- 核心框架:Spring Boot 3.x,支持JDK 17/21
|
||
- ORM框架:MyBatis Plus,增强的MyBatis
|
||
- 权限框架:Spring Security,基于RBAC的权限管理
|
||
- 数据缓存:Redis + Redisson,高性能缓存和分布式锁
|
||
- 工作流引擎:Flowable,灵活的工作流处理
|
||
- 任务调度:基于Quartz的CRON任务调度
|
||
- 服务监控:Spring Boot Admin、SkyWalking APM
|
||
- 消息队列:基于Redis的轻量级消息队列
|
||
- 文档生成:Knife4j,基于Swagger的API文档生成
|
||
- 代码生成:自动化CRUD和表单代码生成器
|
||
- 多租户:基于字段隔离的SaaS多租户设计
|
||
|
||
### 客户端技术架构
|
||
|
||
#### Web管理端架构 (yudao-ui-admin-vue3)
|
||
|
||
**核心技术组成:**
|
||
- Vue 3.x + TypeScript:现代化前端框架
|
||
- Element Plus:企业级UI组件库
|
||
- Pinia:新一代状态管理
|
||
- Vue Router:路由管理
|
||
- Axios:HTTP请求库
|
||
- ECharts:数据可视化图表
|
||
- Vite:快速构建工具
|
||
|
||
**架构特点:**
|
||
- 基于Composition API的组件开发模式
|
||
- TypeScript提供类型安全保障
|
||
- 模块化的项目结构设计
|
||
- 响应式的状态管理机制
|
||
- 统一的HTTP请求封装
|
||
- 完善的权限控制体系
|
||
|
||
#### 移动端架构 (uni-app)
|
||
|
||
**技术栈组成:**
|
||
```mermaid
|
||
graph TB
|
||
subgraph FRAMEWORK["跨平台框架"]
|
||
M1[uni-app 3.x]
|
||
M2[Vue 3 Composition API]
|
||
M3[TypeScript支持]
|
||
end
|
||
|
||
subgraph UIKIT["UI组件库"]
|
||
N1[uView UI 2.0]
|
||
N2[uni-ui组件]
|
||
N3[自定义水务组件]
|
||
end
|
||
|
||
subgraph DEVICE["设备能力"]
|
||
P1[相机API<br/>水表拍照]
|
||
P2[NFC读取<br/>水表标签]
|
||
P3[GPS定位<br/>抄表轨迹]
|
||
P4[扫码API<br/>二维码扫描]
|
||
end
|
||
|
||
subgraph NETWORK["网络通信"]
|
||
Q1[uni.request<br/>HTTP请求]
|
||
Q2[WebSocket<br/>实时通信]
|
||
Q3[文件上传<br/>图片处理]
|
||
end
|
||
|
||
%% 移动架构调用关系
|
||
FRAMEWORK -.->|UI渲染<br/>组件调用| UIKIT
|
||
FRAMEWORK -.->|设备调用<br/>原生能力| DEVICE
|
||
FRAMEWORK -.->|网络通信<br/>数据交互| NETWORK
|
||
```
|
||
|
||
### 技术特性
|
||
|
||
- **单点登录**:OAuth2 + JWT实现统一认证
|
||
- **数据交换**:基于RESTful API的系统内部数据交换与共享
|
||
- **统一报表平台**:集成JimuReport,支持自定义报表设计与生成
|
||
- **大屏设计**:集成GoView,支持可视化大屏设计
|
||
- **安全保障**:满足安全等保三级要求
|
||
- 密码加密:BCrypt加密算法
|
||
- 防XSS攻击:表单数据过滤
|
||
- 防SQL注入:参数化查询
|
||
- 防CSRF攻击:Token验证
|
||
- **性能规格**:支持200并发用户,50并发移动设备,系统响应时间不超过3秒
|
||
- **扩展容量**:支持100万客户的业务量,满足企业3-5年的业务发展需求
|
||
|
||
## 应用架构
|
||
|
||
### 微服务应用架构图
|
||
|
||
```mermaid
|
||
graph TD
|
||
subgraph ACCESS["接入层"]
|
||
GW[API网关]
|
||
AUTH[认证服务]
|
||
end
|
||
|
||
subgraph BUSINESS["业务服务层"]
|
||
SYS[系统服务]
|
||
CUST[客户服务]
|
||
READ[抄表服务]
|
||
BILL[账单服务]
|
||
PAY[收费服务]
|
||
ORDER[工单服务]
|
||
RPT[报表服务]
|
||
end
|
||
|
||
subgraph SUPPORT["支撑服务层"]
|
||
METER[水表管理]
|
||
WF[工作流引擎]
|
||
PAY_GW[支付网关]
|
||
IOT[物联网]
|
||
end
|
||
|
||
subgraph DATA["数据存储层"]
|
||
DB[(OpenGauss数据库)]
|
||
REDIS[(Redis缓存)]
|
||
FILE_STORE[文件存储]
|
||
end
|
||
|
||
%% 层级间的调用关系
|
||
ACCESS -.->|请求路由<br/>认证授权| BUSINESS
|
||
BUSINESS -.->|服务调用| SUPPORT
|
||
BUSINESS -.->|数据访问| DATA
|
||
SUPPORT -.->|数据访问| DATA
|
||
```
|
||
|
||
### 服务治理架构
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph REGISTRY["服务发现与注册"]
|
||
NACOS[Nacos注册中心<br/>服务注册/发现/配置]
|
||
end
|
||
|
||
subgraph MESH["服务网格层"]
|
||
subgraph BALANCE["负载均衡"]
|
||
LB[Ribbon负载均衡<br/>客户端负载均衡]
|
||
FEIGN[OpenFeign<br/>服务间调用]
|
||
end
|
||
|
||
subgraph PROTECTION["容错保护"]
|
||
CB[Sentinel熔断器<br/>流量控制/熔断降级]
|
||
RETRY[重试机制<br/>失败重试]
|
||
end
|
||
|
||
subgraph TRACING["链路追踪"]
|
||
TRACE[SkyWalking<br/>分布式链路追踪]
|
||
METRIC[Micrometer<br/>指标收集]
|
||
end
|
||
end
|
||
|
||
subgraph CONFIG_MGMT["配置管理"]
|
||
CONFIG[Nacos Config<br/>配置中心]
|
||
SECRET[配置加密<br/>敏感信息保护]
|
||
end
|
||
|
||
subgraph MONITORING["监控告警"]
|
||
MONITOR[Spring Boot Admin<br/>应用监控]
|
||
ALERT[告警系统<br/>异常通知]
|
||
LOG[ELK日志系统<br/>日志聚合分析]
|
||
end
|
||
|
||
%% 服务治理调用关系
|
||
REGISTRY -.->|服务发现<br/>配置下发| MESH
|
||
MESH -.->|配置获取<br/>服务注册| CONFIG_MGMT
|
||
MESH -.->|监控数据<br/>链路追踪| MONITORING
|
||
```
|
||
|
||
### 应用模块设计
|
||
|
||
系统应用架构基于业务域划分,主要包括以下核心应用模块:
|
||
|
||
#### 统一平台
|
||
- 单点登录:统一认证入口,支持多种登录方式
|
||
- 系统管理:组织机构、员工管理、角色权限管理、菜单配置等
|
||
- 流程节点提醒:工作流节点到期和状态变更提醒
|
||
|
||
#### 营收系统
|
||
- 系统管理:水价管理、用户档案管理、更名过户管理等
|
||
- 抄表开账:册本管理、抄表录入、复核开账等
|
||
- 收费管理:柜台收费、特殊开账、柜台结账、批量缴费等
|
||
- 账务处理:预存调整、未销调整、已销调整、分账调整等
|
||
- 发票管理:发票查询、发票开具、电子发票等
|
||
- 代收业务:实时收费、银行代扣、银行托收等
|
||
|
||
#### 客户服务
|
||
- 微信、支付宝服务窗:账户绑定、用水查询、在线缴费等
|
||
- 历史账单:账单查询、用水分析、账单推送等
|
||
- 电子发票:发票申请、发票查询、发票下载等
|
||
- 营业网点:网点查询、网点导航、业务指南等
|
||
|
||
#### 表务系统
|
||
- 表务工单:换表工单、移表工单、拆表工单、复装工单等
|
||
- 表务仓库:新表入库、水表检定、水表领用、水表出库等
|
||
- 水表参数与基础信息:水表厂家管理、水表型号管理等
|
||
- 物联网对接与数据同步:厂家设备信息管理、远程抄表数据同步等
|
||
|
||
#### 报装管理
|
||
- 报装流程:报装申请、方案设计、合同签订、施工管理等
|
||
- 一户一表管理:改造计划、改造实施、用户转换等
|
||
|
||
#### 统计分析
|
||
- 报表查询:标准报表、自定义报表、报表导出打印等
|
||
- 欠费查询:欠费情况统计、欠费用户明细、欠费分析等
|
||
- 缴费记录:缴费情况统计、缴费明细查询、缴费趋势分析等
|
||
- 用水分析:用水量统计、用水趋势分析、异常用水分析等
|
||
|
||
## 数据架构
|
||
|
||
系统数据架构基于客户关系数据库为核心和基础,实现客户全生命周期管理。
|
||
|
||
### OpenGauss数据库架构
|
||
|
||
#### 主从高可用架构
|
||
|
||
```mermaid
|
||
graph
|
||
subgraph DBCLUSTER["OpenGauss高可用集群"]
|
||
MASTER[("OpenGauss主库<br/>Primary Node<br/>读写操作")]
|
||
STANDBY[("OpenGauss备库<br/>Standby Node<br/>只读操作")]
|
||
CASCADE[("OpenGauss级联备库<br/>Cascade Standby<br/>负载分担")]
|
||
|
||
MASTER -.->|流复制| STANDBY
|
||
STANDBY -.->|级联复制| CASCADE
|
||
end
|
||
|
||
subgraph APPLAYER["应用层"]
|
||
APP1[应用服务器1]
|
||
APP2[应用服务器2]
|
||
APP3[应用服务器3]
|
||
end
|
||
|
||
subgraph POOLING["连接池"]
|
||
POOL[连接池<br/>HikariCP<br/>Druid]
|
||
end
|
||
|
||
subgraph MANAGEMENT["监控管理"]
|
||
MON[OpenGauss Monitor<br/>性能监控]
|
||
BACKUP[定时备份<br/>gs_backup]
|
||
end
|
||
|
||
%% 高可用架构调用关系
|
||
APPLAYER -.->|连接请求<br/>负载均衡| POOLING
|
||
POOLING -.->|数据访问<br/>读写分离| DBCLUSTER
|
||
MANAGEMENT -.->|监控管理<br/>备份恢复| DBCLUSTER
|
||
```
|
||
|
||
#### 分片存储架构
|
||
|
||
```mermaid
|
||
graph TB
|
||
subgraph DISTRIBUTED["OpenGauss分布式架构"]
|
||
subgraph COORDINATOR["协调节点"]
|
||
CN1[协调节点1<br/>Coordinator Node]
|
||
CN2[协调节点2<br/>Coordinator Node]
|
||
end
|
||
|
||
subgraph DATANODE1["数据节点组1"]
|
||
DN1_1[数据节点1-主<br/>Datanode Primary]
|
||
DN1_2[数据节点1-备<br/>Datanode Standby]
|
||
DN1_1 -.->|主备同步| DN1_2
|
||
end
|
||
|
||
subgraph DATANODE2["数据节点组2"]
|
||
DN2_1[数据节点2-主<br/>Datanode Primary]
|
||
DN2_2[数据节点2-备<br/>Datanode Standby]
|
||
DN2_1 -.->|主备同步| DN2_2
|
||
end
|
||
|
||
subgraph GTM_CLUSTER["GTM节点"]
|
||
GTM[全局事务管理器<br/>GTM Master]
|
||
GTM_S[GTM备节点<br/>GTM Standby]
|
||
GTM -.->|备份| GTM_S
|
||
end
|
||
end
|
||
|
||
%% 分布式架构调用关系
|
||
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE1
|
||
COORDINATOR -.->|分片路由<br/>查询协调| DATANODE2
|
||
COORDINATOR -.->|事务管理<br/>全局一致性| GTM_CLUSTER
|
||
```
|
||
|
||
### 数据模型设计
|
||
|
||
- **客户信息模型**:包含客户基础信息、表卡信息、账户信息、联系人信息等
|
||
- **业务数据模型**:抄表数据、收费数据、账务数据、发票数据等
|
||
- **工单数据模型**:表务工单、报装工单、业务工单等
|
||
- **配置数据模型**:系统参数、水表参数、价格体系等
|
||
- **报表数据模型**:统计数据、分析数据、预测数据等
|
||
- **物联网数据模型**:设备信息、状态信息、实时数据等
|
||
|
||
### 数据集成与共享
|
||
|
||
- **统一数据标准**:定义统一的数据标准和数据字典,符合OpenGauss规范
|
||
- **数据集成机制**:采用OpenGauss XA事务实现系统间的数据一致性
|
||
- **数据共享机制**:基于OpenGauss外部数据包装器(FDW)实现跨库数据访问
|
||
- **数据同步策略**:支持实时流复制、定时数据同步、批量ETL处理等
|
||
|
||
### OpenGauss特性应用
|
||
|
||
#### 性能优化特性
|
||
- **向量化执行引擎**:批量数据处理,提升OLAP查询性能30-50%
|
||
- **列存储引擎**:统计报表类查询,压缩比高达10:1
|
||
- **分区表技术**:按月份分区存储抄表数据,支持分区裁剪
|
||
- **并行查询**:复杂统计查询自动并行执行
|
||
- **智能优化器**:自适应查询计划,持续性能优化
|
||
|
||
#### 企业级特性
|
||
- **在线扩容**:支持不停机新增数据节点
|
||
- **故障自愈**:主备节点故障自动切换,RTO < 10秒
|
||
- **读写分离**:自动路由读请求到备节点,减轻主库压力
|
||
- **负载均衡**:连接池级别的智能负载均衡
|
||
- **全量/增量备份**:支持热备份,最小备份粒度到事务级
|
||
|
||
## 安全架构
|
||
|
||
系统安全架构基于OpenGauss数据库的企业级安全特性,满足等保三级要求和国产化安全标准:
|
||
|
||
### OpenGauss数据安全架构
|
||
|
||
#### 数据加密安全
|
||
|
||
```mermaid
|
||
graph
|
||
subgraph ENCRYPT["加密层级"]
|
||
direction TB
|
||
L1[传输层加密<br/>SSL/TLS/国密SM]
|
||
L2[存储层加密<br/>TDE透明数据加密]
|
||
L3[字段级加密<br/>敏感字段加密]
|
||
L4[备份加密<br/>备份文件加密]
|
||
end
|
||
|
||
subgraph KEYMANAGE["密钥管理"]
|
||
direction TB
|
||
KMS[密钥管理系统<br/>Key Management]
|
||
HSM[硬件安全模块<br/>Hardware Security]
|
||
ROT[密钥轮换<br/>Key Rotation]
|
||
end
|
||
|
||
subgraph GUOMI["国密算法"]
|
||
direction TB
|
||
SM2[SM2椭圆曲线<br/>非对称加密]
|
||
SM3[SM3哈希算法<br/>消息摘要]
|
||
SM4[SM4分组密码<br/>对称加密]
|
||
end
|
||
|
||
%% 安全层级调用关系
|
||
ENCRYPT -.->|密钥依赖<br/>加密管理| KEYMANAGE
|
||
KEYMANAGE -.->|算法调用<br/>国密支持| GUOMI
|
||
```
|
||
|
||
#### 访问控制安全
|
||
|
||
```mermaid
|
||
graph
|
||
subgraph AUTHENTICATION["身份认证"]
|
||
direction TB
|
||
AUTH1[用户名密码认证]
|
||
AUTH2[LDAP集成认证]
|
||
AUTH3[Kerberos认证]
|
||
AUTH4[证书认证]
|
||
end
|
||
|
||
subgraph AUTHORIZATION["权限控制"]
|
||
direction TB
|
||
RBAC[基于角色的权限控制<br/>Role-Based Access Control]
|
||
RLS[行级安全策略<br/>Row Level Security]
|
||
CLS[列级安全控制<br/>Column Level Security]
|
||
TENANT[多租户数据隔离<br/>Multi-Tenant Isolation]
|
||
end
|
||
|
||
subgraph AUDITING["审计监控"]
|
||
direction TB
|
||
AUDIT[操作审计日志<br/>Audit Logging]
|
||
MONITOR[实时安全监控<br/>Security Monitoring]
|
||
ALERT[安全告警<br/>Security Alert]
|
||
REPORT[合规报告<br/>Compliance Report]
|
||
end
|
||
|
||
%% 安全控制流程
|
||
AUTHENTICATION -.->|身份验证<br/>授权检查| AUTHORIZATION
|
||
AUTHORIZATION -.->|权限监控<br/>操作审计| AUDITING
|
||
```
|
||
|
||
### 网络安全
|
||
|
||
- **边界防护**:防火墙、入侵检测/防御系统
|
||
- **访问控制**:基于角色的访问控制(RBAC)
|
||
- **通信安全**:SSL/TLS加密传输,支持国密算法
|
||
- **安全监控**:实时监控网络安全状态和异常访问
|
||
|
||
### 数据安全特性
|
||
|
||
- **透明数据加密(TDE)**:自动加密存储数据,支持SM4国密算法
|
||
- **行级安全(RLS)**:基于用户角色的行级数据访问控制
|
||
- **列级权限**:敏感字段的精细化访问控制
|
||
- **动态脱敏**:查询时自动脱敏显示敏感信息
|
||
- **数据备份安全**:备份文件自动加密,支持增量备份
|
||
- **审计日志**:完整记录所有数据库操作,支持合规审计
|
||
|
||
### 多租户安全隔离
|
||
|
||
- **逻辑隔离**:基于tenant_id的数据隔离
|
||
- **连接隔离**:租户间连接池隔离
|
||
- **权限隔离**:租户级别的权限管理
|
||
- **资源隔离**:CPU、内存、IO资源限制
|
||
|
||
### 应用安全
|
||
|
||
- **身份认证**:多因素认证,支持短信验证码、邮箱验证等
|
||
- **授权管理**:细粒度的权限控制,支持菜单、按钮、数据权限
|
||
- **安全审计**:用户操作审计,关键业务操作全程记录
|
||
- **密码策略**:密码复杂度、定期更换、失败锁定等安全策略
|
||
- **会话管理**:会话超时、并发限制、单点登录等
|
||
|
||
### 接口安全
|
||
|
||
- **接口认证**:基于JWT Token的接口认证
|
||
- **接口授权**:基于角色的接口授权和权限验证
|
||
- **接口加密**:敏感数据的加密传输,支持国密算法
|
||
- **接口防护**:防重放、防篡改、防SQL注入等安全措施
|
||
- **接口限流**:基于IP、用户、应用的多维度限流策略
|
||
|
||
## 部署架构
|
||
|
||
系统采用集中部署的模式,基于集团私有云环境进行部署。
|
||
|
||
### 物理部署
|
||
|
||
- **生产环境**:高可用集群部署
|
||
- 应用服务器:2台或以上服务器,负载均衡
|
||
- **OpenGauss数据库集群**:主从+级联备架构,支持自动故障切换
|
||
- 缓存服务器:Redis集群
|
||
- 文件服务器:冗余存储
|
||
- **灾备环境**:异地灾备,定期数据同步,支持OpenGauss流复制
|
||
- **测试环境**:用于系统测试和验证,单节点OpenGauss部署
|
||
- **开发环境**:用于系统开发和集成测试,单节点OpenGauss部署
|
||
|
||
### 逻辑部署
|
||
|
||
- **应用服务器集群**:负责业务逻辑处理,支持水平扩展
|
||
- **OpenGauss数据库集群**:负责数据存储和管理,提供高可用保障
|
||
- **文件服务器**:负责文档和附件存储,支持分布式存储
|
||
- **缓存服务器**:Redis集群提高系统性能
|
||
- **负载均衡服务器**:实现请求分发和负载均衡
|
||
- **移动应用服务**:提供移动端API服务
|
||
- **API网关**:统一的接口管理和控制
|
||
|
||
### 容器部署
|
||
|
||
- 基于Docker容器技术实现微服务部署
|
||
- 使用Kubernetes进行容器编排和管理
|
||
- 支持容器的自动扩缩容和故障转移
|
||
- 实现服务的灰度发布和版本控制
|
||
|
||
## 接口架构
|
||
|
||
系统提供标准化的接口,实现与外部系统的集成和数据交换。
|
||
|
||
### 外部接口
|
||
|
||
- 银行接口:实现与银行系统的对接,支持代扣、托收等功能
|
||
- 支付宝/微信接口:支持在线支付功能
|
||
- 短信接口:支持短信通知和验证码功能
|
||
- 集抄系统接口:实现与智能水表集中抄表系统的对接
|
||
- 政务系统接口:实现与地方政务平台和政务APP的对接
|
||
- 消火栓系统接口:实现与消火栓系统的对接
|
||
- 环卫系统接口:实现与环卫系统的对接
|
||
- OA系统接口:实现与OA系统的工作流对接
|
||
|
||
### 内部接口
|
||
|
||
- ESB服务接口:系统内部模块间的数据交换
|
||
- 报表接口:提供报表数据查询和生成功能
|
||
- 查询接口:提供数据查询功能
|
||
- 业务处理接口:提供业务处理功能
|
||
- 消息通知接口:提供消息推送和通知功能
|
||
- 工作流接口:提供工作流处理和状态查询功能
|
||
|
||
### 接口标准
|
||
|
||
- 接口协议:RESTful API、WebService、消息队列等
|
||
- 数据格式:JSON、XML等
|
||
- 接口安全:身份认证、授权、加密传输等
|
||
- 接口文档:统一的接口文档和示例代码
|
||
- 接口测试:提供接口测试工具和环境
|
||
|
||
### 接口服务管理
|
||
|
||
- API网关:统一的接口入口和管理
|
||
- 服务注册与发现:服务的自动注册和发现
|
||
- 服务路由:根据请求参数进行服务路由
|
||
- 服务降级:在服务不可用时提供降级策略
|
||
- 服务监控:实时监控服务的可用性和性能 |