redisTemplate;
+
+ public boolean isAllowed(String key, int limit, Duration window) {
+ String redisKey = "rate_limit:" + key;
+ String current = redisTemplate.opsForValue().get(redisKey);
+
+ if (current == null) {
+ redisTemplate.opsForValue().set(redisKey, "1", window);
+ return true;
+ }
+
+ int count = Integer.parseInt(current);
+ if (count < limit) {
+ redisTemplate.opsForValue().increment(redisKey);
+ return true;
+ }
+
+ return false;
+ }
+}
+```
+
+## 五、网络安全设计
+
+### 5.1 网络拓扑安全
+
+```mermaid
+graph TB
+ subgraph "外网区域"
+ INTERNET[互联网]
+ CDN[CDN加速]
+ DNS[DNS服务]
+ end
+
+ subgraph "边界防护"
+ WAF[Web应用防火墙
国产WAF产品]
+ FW_BORDER[边界防火墙
安全审计]
+ IPS[入侵防护系统
威胁检测]
+ DPI[深度包检测
流量分析]
+ end
+
+ subgraph "DMZ区域"
+ LB[负载均衡器
SSL卸载]
+ WEB1[Web服务器1]
+ WEB2[Web服务器2]
+ PROXY[反向代理]
+ end
+
+ subgraph "内网安全"
+ FW_INTERNAL[内部防火墙]
+ VLAN_APP[应用VLAN]
+ VLAN_DB[数据库VLAN]
+ VLAN_MGT[管理VLAN]
+ end
+
+ subgraph "应用层"
+ APP1[应用服务器1]
+ APP2[应用服务器2]
+ APP3[应用服务器3]
+ end
+
+ subgraph "数据层"
+ DB_MASTER[OpenGauss主库]
+ DB_SLAVE[OpenGauss从库]
+ REDIS[Redis集群]
+ end
+
+ subgraph "管理层"
+ JUMP[跳板机]
+ MONITOR[监控服务器]
+ LOG[日志服务器]
+ end
+
+ INTERNET --> CDN
+ CDN --> DNS
+ DNS --> WAF
+ WAF --> FW_BORDER
+ FW_BORDER --> IPS
+ IPS --> DPI
+ DPI --> LB
+
+ LB --> WEB1
+ LB --> WEB2
+ WEB1 --> PROXY
+ WEB2 --> PROXY
+
+ PROXY --> FW_INTERNAL
+ FW_INTERNAL --> VLAN_APP
+ FW_INTERNAL --> VLAN_DB
+ FW_INTERNAL --> VLAN_MGT
+
+ VLAN_APP --> APP1
+ VLAN_APP --> APP2
+ VLAN_APP --> APP3
+
+ VLAN_DB --> DB_MASTER
+ VLAN_DB --> DB_SLAVE
+ VLAN_DB --> REDIS
+
+ VLAN_MGT --> JUMP
+ VLAN_MGT --> MONITOR
+ VLAN_MGT --> LOG
+```
+
+### 5.2 防火墙策略配置
+
+#### 5.2.1 边界防火墙策略
+```bash
+# 允许HTTPS访问
+iptables -A INPUT -p tcp --dport 443 -j ACCEPT
+
+# 允许HTTP重定向到HTTPS
+iptables -A INPUT -p tcp --dport 80 -j ACCEPT
+
+# 禁止直接数据库访问
+iptables -A INPUT -p tcp --dport 5432 -s ! 192.168.1.0/24 -j DROP
+
+# 允许内网SSH管理
+iptables -A INPUT -p tcp --dport 22 -s 192.168.100.0/24 -j ACCEPT
+
+# 拒绝其他所有入站连接
+iptables -A INPUT -j DROP
+```
+
+#### 5.2.2 应用层防火墙策略
+```bash
+# 只允许来自DMZ区的连接
+iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT
+
+# 允许访问数据库
+iptables -A OUTPUT -d 192.168.2.0/24 -p tcp --dport 5432 -j ACCEPT
+
+# 允许访问Redis
+iptables -A OUTPUT -d 192.168.2.0/24 -p tcp --dport 6379 -j ACCEPT
+
+# 允许DNS查询
+iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
+
+# 拒绝其他出站连接
+iptables -A OUTPUT -j DROP
+```
+
+### 5.3 入侵检测与防护
+
+#### 5.3.1 IDS/IPS规则配置
+```bash
+# Suricata规则示例
+alert tcp any any -> $HOME_NET 443 (msg:"Suspicious HTTPS traffic"; \
+ content:"POST"; http_method; content:"/api/admin"; http_uri; \
+ threshold:type limit, track by_src, count 10, seconds 60; \
+ sid:10001; rev:1;)
+
+alert tcp any any -> $HOME_NET 5432 (msg:"Direct database access attempt"; \
+ content:"SELECT"; content:"FROM"; distance:0; \
+ sid:10002; rev:1;)
+
+alert tcp any any -> $HOME_NET any (msg:"Brute force attack detected"; \
+ flags:S; threshold:type threshold, track by_src, count 100, seconds 60; \
+ sid:10003; rev:1;)
+```
+
+## 六、数据安全设计
+
+### 6.1 数据分类分级
+
+#### 6.1.1 数据分类标准
+```mermaid
+graph TB
+ subgraph "数据分类"
+ TOP_SECRET[绝密级
核心商业机密]
+ SECRET[机密级
重要业务数据]
+ INTERNAL[内部级
一般业务数据]
+ PUBLIC[公开级
公开业务数据]
+ end
+
+ subgraph "水务业务数据"
+ CUSTOMER[客户身份信息
机密级]
+ METER[水表计量数据
内部级]
+ BILLING[收费账务数据
机密级]
+ REPORT[统计报表数据
内部级]
+ CONFIG[系统配置数据
内部级]
+ LOG[日志审计数据
内部级]
+ end
+
+ subgraph "保护措施"
+ ENC_HIGH[强加密
SM4+数字签名]
+ ENC_MID[加密存储
SM4算法]
+ ENC_LOW[访问控制
权限管理]
+ ENC_NONE[公开访问
无特殊保护]
+ end
+
+ TOP_SECRET --> ENC_HIGH
+ SECRET --> ENC_MID
+ INTERNAL --> ENC_LOW
+ PUBLIC --> ENC_NONE
+
+ CUSTOMER --> SECRET
+ BILLING --> SECRET
+ METER --> INTERNAL
+ REPORT --> INTERNAL
+ CONFIG --> INTERNAL
+ LOG --> INTERNAL
+```
+
+#### 6.1.2 数据保护策略
+```sql
+-- 客户敏感信息表(机密级)
+CREATE TABLE water_customer_sensitive (
+ id SERIAL PRIMARY KEY,
+ customer_id BIGINT NOT NULL,
+ -- 身份证号:强加密存储
+ id_card_encrypted VARCHAR(200) ENCRYPTED WITH (
+ COLUMN_ENCRYPTION_KEY = customer_sensitive_key,
+ ENCRYPTION_TYPE = RANDOMIZED,
+ ALGORITHM = 'SM4-CTR'
+ ),
+ -- 银行卡号:强加密存储
+ bank_account_encrypted VARCHAR(200) ENCRYPTED WITH (
+ COLUMN_ENCRYPTION_KEY = customer_sensitive_key,
+ ENCRYPTION_TYPE = RANDOMIZED,
+ ALGORITHM = 'SM4-CTR'
+ ),
+ -- 手机号:确定性加密,支持查询
+ phone_encrypted VARCHAR(200) ENCRYPTED WITH (
+ COLUMN_ENCRYPTION_KEY = customer_sensitive_key,
+ ENCRYPTION_TYPE = DETERMINISTIC,
+ ALGORITHM = 'SM4-CTR'
+ ),
+ created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
+ updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
+);
+
+-- 创建行级安全策略
+CREATE POLICY customer_sensitive_policy ON water_customer_sensitive
+FOR ALL TO water_customer_service_role
+USING (
+ customer_id IN (
+ SELECT customer_id FROM water_customer
+ WHERE tenant_id = current_setting('app.current_tenant_id')::bigint
+ )
+);
+```
+
+### 6.2 数据备份与恢复安全
+
+#### 6.2.1 备份加密策略
+```bash
+#!/bin/bash
+# OpenGauss安全备份脚本
+
+# 设置备份参数
+BACKUP_DIR="/backup/opengauss"
+DATE=$(date +%Y%m%d_%H%M%S)
+BACKUP_FILE="water_biz_backup_${DATE}.tar.gz"
+ENCRYPT_KEY="/etc/opengauss/backup_key.key"
+
+# 创建加密备份
+gs_backup -D $GAUSSDATA -U gaussdb \
+ --encrypt --encrypt-key-file=$ENCRYPT_KEY \
+ --backup-format=tar \
+ --backup-path=$BACKUP_DIR/$BACKUP_FILE
+
+# 验证备份完整性
+openssl dgst -sm3 $BACKUP_DIR/$BACKUP_FILE > $BACKUP_DIR/$BACKUP_FILE.sm3
+
+# 安全传输到异地备份中心
+rsync -avz --delete $BACKUP_DIR/ backup-server:/backup/remote/
+```
+
+#### 6.2.2 数据恢复流程
+```sql
+-- 恢复前验证备份完整性
+-- 1. 验证SM3摘要
+-- 2. 解密备份文件
+-- 3. 验证数据库结构
+-- 4. 执行恢复操作
+
+-- 创建恢复测试环境
+CREATE DATABASE water_biz_recovery_test;
+
+-- 恢复数据到测试环境
+\c water_biz_recovery_test;
+-- 执行恢复SQL脚本
+\i /backup/water_biz_recovery.sql;
+
+-- 验证数据完整性
+SELECT COUNT(*) FROM water_customer;
+SELECT COUNT(*) FROM water_meter_reading;
+SELECT COUNT(*) FROM water_billing;
+
+-- 验证加密数据
+SELECT id,
+ pgp_sym_decrypt(id_card_encrypted, 'encryption_key') as id_card
+FROM water_customer_sensitive LIMIT 1;
+```
+
+### 6.3 数据销毁与清理
+
+#### 6.3.1 安全数据销毁
+```sql
+-- 创建安全数据销毁函数
+CREATE OR REPLACE FUNCTION secure_data_destroy(table_name TEXT, where_clause TEXT)
+RETURNS BOOLEAN AS $$
+DECLARE
+ sql_cmd TEXT;
+ affected_rows INTEGER;
+BEGIN
+ -- 构建删除SQL
+ sql_cmd := 'DELETE FROM ' || table_name || ' WHERE ' || where_clause;
+
+ -- 执行删除
+ EXECUTE sql_cmd;
+ GET DIAGNOSTICS affected_rows = ROW_COUNT;
+
+ -- 记录审计日志
+ INSERT INTO data_destroy_audit (
+ table_name, where_clause, affected_rows,
+ operator, operation_time
+ ) VALUES (
+ table_name, where_clause, affected_rows,
+ current_user, current_timestamp
+ );
+
+ -- 执行VACUUM清理物理空间
+ EXECUTE 'VACUUM FULL ' || table_name;
+
+ RETURN TRUE;
+EXCEPTION
+ WHEN OTHERS THEN
+ RAISE EXCEPTION '数据销毁失败: %', SQLERRM;
+ RETURN FALSE;
+END;
+$$ LANGUAGE plpgsql;
+
+-- 示例:销毁3年前的历史数据
+SELECT secure_data_destroy(
+ 'water_meter_reading_history',
+ 'reading_date < CURRENT_DATE - INTERVAL ''3 years'''
+);
+```
+
+## 七、运维安全设计
+
+### 7.1 安全监控体系
+
+#### 7.1.1 安全监控架构
+```mermaid
+graph TB
+ subgraph "数据采集层"
+ AGENT1[系统日志采集]
+ AGENT2[应用日志采集]
+ AGENT3[数据库日志采集]
+ AGENT4[网络流量采集]
+ end
+
+ subgraph "数据处理层"
+ KAFKA[消息队列
Kafka集群]
+ STREAM[流处理
Flink/Storm]
+ ETL[数据清洗
Logstash]
+ end
+
+ subgraph "存储分析层"
+ ES[Elasticsearch
日志存储]
+ SIEM[安全信息事件管理
SIEM平台]
+ AI[智能分析
机器学习]
+ end
+
+ subgraph "可视化层"
+ DASHBOARD[监控仪表盘
Grafana]
+ ALERT[告警系统
AlertManager]
+ REPORT[安全报告
自动生成]
+ end
+
+ AGENT1 --> KAFKA
+ AGENT2 --> KAFKA
+ AGENT3 --> KAFKA
+ AGENT4 --> KAFKA
+
+ KAFKA --> STREAM
+ STREAM --> ETL
+ ETL --> ES
+
+ ES --> SIEM
+ SIEM --> AI
+ AI --> DASHBOARD
+
+ DASHBOARD --> ALERT
+ ALERT --> REPORT
+```
+
+#### 7.1.2 安全事件检测规则
+```yaml
+# 安全事件检测规则配置
+security_rules:
+ - name: "暴力破解检测"
+ type: "authentication"
+ condition: "failed_login_count > 5 in 5 minutes"
+ severity: "high"
+ action: ["block_ip", "send_alert"]
+
+ - name: "异常数据访问"
+ type: "data_access"
+ condition: "query_count > 1000 in 1 minute"
+ severity: "medium"
+ action: ["rate_limit", "send_alert"]
+
+ - name: "权限提升检测"
+ type: "privilege_escalation"
+ condition: "role_change to admin"
+ severity: "critical"
+ action: ["block_user", "send_alert", "create_incident"]
+
+ - name: "异常时间访问"
+ type: "abnormal_access"
+ condition: "access_time between 22:00 and 06:00"
+ severity: "medium"
+ action: ["log_event", "send_alert"]
+```
+
+### 7.2 漏洞管理
+
+#### 7.2.1 漏洞扫描策略
+```bash
+#!/bin/bash
+# 系统漏洞扫描脚本
+
+# 扫描操作系统漏洞
+nmap -sV --script vulners localhost
+
+# 扫描Web应用漏洞
+nikto -h https://water.example.com -ssl
+
+# 扫描数据库漏洞
+nmap -p 5432 --script pgsql-brute,pgsql-databases localhost
+
+# 生成漏洞报告
+cat > vulnerability_report.html << EOF
+
+
+
+ 安全漏洞扫描报告
+
+
+ 福建水务营收系统漏洞扫描报告
+ 扫描时间:$(date)
+ 高危漏洞
+ $(grep -i "high\|critical" scan_results.txt)
+ 中危漏洞
+ $(grep -i "medium" scan_results.txt)
+
+
+EOF
+```
+
+#### 7.2.2 补丁管理流程
+```mermaid
+graph LR
+ DISCOVER[漏洞发现] --> ASSESS[风险评估]
+ ASSESS --> PLAN[补丁计划]
+ PLAN --> TEST[测试验证]
+ TEST --> DEPLOY[生产部署]
+ DEPLOY --> VERIFY[部署验证]
+ VERIFY --> DOCUMENT[文档记录]
+
+ subgraph "评估标准"
+ HIGH[高危
24小时内]
+ MEDIUM[中危
7天内]
+ LOW[低危
30天内]
+ end
+
+ ASSESS --> HIGH
+ ASSESS --> MEDIUM
+ ASSESS --> LOW
+```
+
+### 7.3 应急响应预案
+
+#### 7.3.1 安全事件分级
+| 级别 | 描述 | 响应时间 | 处理措施 |
+|------|------|----------|----------|
+| P0 | 系统完全不可用,数据泄露 | 15分钟 | 立即启动应急预案,通知管理层 |
+| P1 | 核心功能受影响,安全风险高 | 30分钟 | 启动应急预案,组建应急小组 |
+| P2 | 部分功能受影响,安全风险中等 | 2小时 | 安排专人处理,定期汇报 |
+| P3 | 轻微影响,安全风险较低 | 8小时 | 正常工作时间处理 |
+
+#### 7.3.2 应急响应流程
+```mermaid
+graph TB
+ INCIDENT[安全事件发生] --> DETECT[事件检测]
+ DETECT --> REPORT[事件上报]
+ REPORT --> ASSESS[影响评估]
+ ASSESS --> RESPONSE[应急响应]
+
+ subgraph "应急响应措施"
+ ISOLATE[系统隔离]
+ PRESERVE[证据保全]
+ RECOVER[系统恢复]
+ INVESTIGATE[调查分析]
+ end
+
+ subgraph "后续处理"
+ LESSON[经验总结]
+ IMPROVE[流程改进]
+ TRAIN[培训加强]
+ DOC[文档更新]
+ end
+
+ RESPONSE --> ISOLATE
+ RESPONSE --> PRESERVE
+ RESPONSE --> RECOVER
+ RESPONSE --> INVESTIGATE
+
+ INVESTIGATE --> LESSON
+ LESSON --> IMPROVE
+ IMPROVE --> TRAIN
+ TRAIN --> DOC
+```
+
+## 八、安全管理制度
+
+### 8.1 安全组织架构
+
+#### 8.1.1 安全管理组织
+```mermaid
+graph TB
+ CEO[总经理
安全最高责任人]
+ CISO[信息安全负责人
CISO]
+
+ subgraph "安全管理委员会"
+ IT_DIR[IT总监]
+ SECURITY_DIR[安全总监]
+ COMPLIANCE[合规负责人]
+ LEGAL[法务负责人]
+ end
+
+ subgraph "安全执行团队"
+ SEC_ADMIN[安全管理员]
+ SYS_ADMIN[系统管理员]
+ DBA[数据库管理员]
+ NET_ADMIN[网络管理员]
+ end
+
+ subgraph "业务安全责任人"
+ BUS_OWNER[业务负责人]
+ DATA_OWNER[数据负责人]
+ USER_ADMIN[用户管理员]
+ end
+
+ CEO --> CISO
+ CISO --> IT_DIR
+ CISO --> SECURITY_DIR
+ CISO --> COMPLIANCE
+ CISO --> LEGAL
+
+ IT_DIR --> SEC_ADMIN
+ IT_DIR --> SYS_ADMIN
+ IT_DIR --> DBA
+ IT_DIR --> NET_ADMIN
+
+ SECURITY_DIR --> BUS_OWNER
+ SECURITY_DIR --> DATA_OWNER
+ SECURITY_DIR --> USER_ADMIN
+```
+
+### 8.2 安全管理制度
+
+#### 8.2.1 人员安全管理
+- **入职安全审查**:对关键岗位人员进行背景调查
+- **安全培训**:定期进行信息安全意识培训
+- **权限管理**:建立权限申请、审批、回收流程
+- **离职管理**:离职人员权限及时回收,签署保密协议
+
+#### 8.2.2 系统建设安全管理
+- **安全需求分析**:项目立项阶段进行安全需求分析
+- **安全设计评审**:设计阶段进行安全架构评审
+- **安全测试**:上线前进行安全渗透测试
+- **安全验收**:系统上线前进行安全验收
+
+#### 8.2.3 系统运维安全管理
+- **变更管理**:所有系统变更都需要安全评估
+- **备份管理**:定期备份,异地存储,加密保护
+- **监控管理**:7×24小时安全监控
+- **应急管理**:建立应急响应机制
+
+### 8.3 合规管理
+
+#### 8.3.1 法律法规合规
+- 《中华人民共和国网络安全法》
+- 《中华人民共和国数据安全法》
+- 《中华人民共和国个人信息保护法》
+- 《关键信息基础设施安全保护条例》
+
+#### 8.3.2 行业标准合规
+- GB/T 22239-2019《信息安全技术 网络安全等级保护基本要求》
+- GB/T 25070-2019《信息安全技术 网络安全等级保护安全设计技术要求》
+- GB/T 32918《信息安全技术 SM2椭圆曲线公钥密码算法》
+- GB/T 32905《信息安全技术 SM3密码杂凑算法》
+
+#### 8.3.3 合规检查清单
+- [ ] 等级保护三级备案完成
+- [ ] 年度安全评估报告
+- [ ] 安全管理制度建立
+- [ ] 安全技术措施落实
+- [ ] 安全培训记录完整
+- [ ] 应急预案演练记录
+- [ ] 安全事件处置记录
+- [ ] 第三方安全服务合同
+
+---
+
+## 总结
+
+福建水务营收系统安全设计严格按照等级保护三级要求,结合OpenGauss数据库的安全特性,建立了全方位、多层次的安全防护体系。通过技术防护、管理制度、人员培训等多重措施,确保系统安全稳定运行,满足水务行业的安全合规要求。
+
+本安全设计方案的核心特点:
+1. **国产化安全**:采用OpenGauss数据库和国密算法
+2. **纵深防御**:网络、应用、数据多层安全防护
+3. **合规导向**:严格按照等保三级标准设计
+4. **持续改进**:建立安全监控和应急响应机制
+5. **管理规范**:完善的安全管理制度和流程
\ No newline at end of file
diff --git a/water_biz_system_architecture.md b/water_biz_system_architecture.md
index 5e376e1..b47a2dd 100644
--- a/water_biz_system_architecture.md
+++ b/water_biz_system_architecture.md
@@ -60,7 +60,7 @@ graph TB
end
subgraph "数据层"
- E1[(MySQL 8.0
主从架构)]
+ E1[(OpenGauss 5.0+
主从架构)]
E2[(Redis 6.0
集群缓存)]
E3[文件存储
分布式存储]
end
@@ -127,8 +127,8 @@ graph TB
subgraph "数据服务区"
subgraph "数据库集群"
- DB1[MySQL主库
32核128G]
- DB2[MySQL从库
32核128G]
+ DB1[OpenGauss主库
32核128G]
+ DB2[OpenGauss从库
32核128G]
end
subgraph "缓存集群"
@@ -207,7 +207,7 @@ graph TB
BE2[Spring Security 6.x]
BE3[MyBatis Plus 3.x]
BE4[Redis 6.0+]
- BE5[MySQL 8.0+]
+ BE5[OpenGauss 5.0+]
BE6[Knife4j API文档]
BE7[Jackson JSON处理]
BE8[Maven 依赖管理]
@@ -365,7 +365,7 @@ flowchart TD
### 3. 服务端技术架构
- 操作系统:国产 Linux 操作系统
-- 数据库:MySQL/MariaDB数据库,支持国产OpenGauss数据库
+- 数据库:华为OpenGauss 5.0+数据库,企业级国产数据库
- 应用框架:基于RuoYi-Vue-Pro框架定制开发
- 核心框架:Spring Boot 3.x,支持JDK 17/21
- ORM框架:MyBatis Plus,增强的MyBatis
@@ -1328,73 +1328,279 @@ graph TB
- 数据服务层:提供数据服务接口
- 数据展现层:提供数据分析和可视化功能
-### 4.2 数据模型
-- 客户信息模型:包含客户基础信息、表卡信息、账户信息、联系人信息等
-- 业务数据模型:抄表数据、收费数据、账务数据、发票数据等
-- 工单数据模型:表务工单、报装工单、业务工单等
-- 配置数据模型:系统参数、水表参数、价格体系等
-- 报表数据模型:统计数据、分析数据、预测数据等
-- 物联网数据模型:设备信息、状态信息、实时数据等
+### 4.2 OpenGauss数据库架构
-### 4.3 数据集成与共享
-- 统一数据标准:定义统一的数据标准和数据字典
-- 数据集成机制:采用ESB实现系统间的数据集成
-- 数据共享机制:基于统一的数据服务接口实现数据共享
-- 数据同步策略:实时同步、定时同步、批量同步等
+#### 4.2.1 主从高可用架构
+
+```mermaid
+graph TB
+ subgraph "OpenGauss高可用集群"
+ MASTER[("OpenGauss主库
Primary Node
读写操作")]
+ STANDBY[("OpenGauss备库
Standby Node
只读操作")]
+ CASCADE[("OpenGauss级联备库
Cascade Standby
负载分担")]
+ end
+
+ subgraph "应用层"
+ APP1[应用服务器1]
+ APP2[应用服务器2]
+ APP3[应用服务器3]
+ end
+
+ subgraph "连接池"
+ POOL[连接池
HikariCP
Druid]
+ end
+
+ subgraph "监控管理"
+ MON[OpenGauss Monitor
性能监控]
+ BACKUP[定时备份
gs_backup]
+ end
+
+ APP1 --> POOL
+ APP2 --> POOL
+ APP3 --> POOL
+ POOL --> MASTER
+ POOL --> STANDBY
+ POOL --> CASCADE
+
+ MASTER -.->|流复制| STANDBY
+ STANDBY -.->|级联复制| CASCADE
+
+ MON --> MASTER
+ MON --> STANDBY
+ BACKUP --> MASTER
+```
+
+#### 4.2.2 分片存储架构
+
+```mermaid
+graph TB
+ subgraph "OpenGauss分布式架构"
+ subgraph "协调节点"
+ CN1[协调节点1
Coordinator Node]
+ CN2[协调节点2
Coordinator Node]
+ end
+
+ subgraph "数据节点组1"
+ DN1_1[数据节点1-主
Datanode Primary]
+ DN1_2[数据节点1-备
Datanode Standby]
+ end
+
+ subgraph "数据节点组2"
+ DN2_1[数据节点2-主
Datanode Primary]
+ DN2_2[数据节点2-备
Datanode Standby]
+ end
+
+ subgraph "GTM节点"
+ GTM[全局事务管理器
GTM Master]
+ GTM_S[GTM备节点
GTM Standby]
+ end
+ end
+
+ CN1 --> DN1_1
+ CN1 --> DN2_1
+ CN2 --> DN1_1
+ CN2 --> DN2_1
+
+ DN1_1 -.->|主备同步| DN1_2
+ DN2_1 -.->|主备同步| DN2_2
+
+ GTM -.->|备份| GTM_S
+ CN1 --> GTM
+ CN2 --> GTM
+```
+
+#### 4.2.3 数据安全架构
+
+```mermaid
+graph TB
+ subgraph "安全防护层"
+ TDE[透明数据加密
TDE]
+ RLS[行级安全
Row Level Security]
+ MASK[动态数据脱敏
Dynamic Data Masking]
+ AUDIT[三权分立审计
Separated Audit]
+ end
+
+ subgraph "访问控制层"
+ RBAC[基于角色的访问控制
RBAC]
+ LDAP[LDAP集成认证
External Auth]
+ SSL[SSL/TLS加密传输
Encrypted Transport]
+ end
+
+ subgraph "数据存储层"
+ ENCRYPT[存储层加密
Storage Encryption]
+ COMPRESS[数据压缩
Data Compression]
+ BACKUP_ENC[备份加密
Backup Encryption]
+ end
+
+ TDE --> ENCRYPT
+ RLS --> RBAC
+ MASK --> ENCRYPT
+ AUDIT --> BACKUP_ENC
+ RBAC --> SSL
+ LDAP --> SSL
+```
+
+### 4.3 数据模型设计
+- **客户信息模型**:包含客户基础信息、表卡信息、账户信息、联系人信息等
+- **业务数据模型**:抄表数据、收费数据、账务数据、发票数据等
+- **工单数据模型**:表务工单、报装工单、业务工单等
+- **配置数据模型**:系统参数、水表参数、价格体系等
+- **报表数据模型**:统计数据、分析数据、预测数据等
+- **物联网数据模型**:设备信息、状态信息、实时数据等
+
+### 4.4 数据集成与共享
+- **统一数据标准**:定义统一的数据标准和数据字典,符合OpenGauss规范
+- **数据集成机制**:采用OpenGauss XA事务实现系统间的数据一致性
+- **数据共享机制**:基于OpenGauss外部数据包装器(FDW)实现跨库数据访问
+- **数据同步策略**:支持实时流复制、定时数据同步、批量ETL处理等
+
+### 4.5 OpenGauss特性应用
+
+#### 4.5.1 性能优化特性
+- **向量化执行引擎**:批量数据处理,提升OLAP查询性能30-50%
+- **列存储引擎**:统计报表类查询,压缩比高达10:1
+- **分区表技术**:按月份分区存储抄表数据,支持分区裁剪
+- **并行查询**:复杂统计查询自动并行执行
+- **智能优化器**:自适应查询计划,持续性能优化
+
+#### 4.5.2 企业级特性
+- **在线扩容**:支持不停机新增数据节点
+- **故障自愈**:主备节点故障自动切换,RTO < 10秒
+- **读写分离**:自动路由读请求到备节点,减轻主库压力
+- **负载均衡**:连接池级别的智能负载均衡
+- **全量/增量备份**:支持热备份,最小备份粒度到事务级
## 5. 安全架构
-系统安全架构满足等保三级要求,主要包括以下安全措施:
+系统安全架构基于OpenGauss数据库的企业级安全特性,满足等保三级要求和国产化安全标准:
### 5.1 网络安全
-- 边界防护:防火墙、入侵检测/防御系统
-- 访问控制:基于角色的访问控制
-- 通信安全:SSL/TLS加密传输
-- 安全监控:实时监控网络安全状态
+- **边界防护**:防火墙、入侵检测/防御系统
+- **访问控制**:基于角色的访问控制(RBAC)
+- **通信安全**:SSL/TLS加密传输,支持国密算法
+- **安全监控**:实时监控网络安全状态和异常访问
-### 5.2 数据安全
-- 数据加密:敏感数据加密存储
-- 数据备份:定期数据备份和恢复机制
-- 数据审计:关键操作的审计日志
-- 数据脱敏:敏感数据的显示脱敏和处理脱敏
-- 数据权限:基于多租户的数据隔离和访问控制
+### 5.2 OpenGauss数据安全架构
-### 5.3 应用安全
-- 身份认证:多因素认证
-- 授权管理:细粒度的权限控制
-- 安全审计:用户操作审计
-- 密码策略:密码复杂度、定期更换、失败锁定等
-- 会话管理:会话超时、并发限制等
+#### 5.2.1 数据加密安全
-### 5.4 接口安全
-- 接口认证:基于Token的接口认证
-- 接口授权:基于角色的接口授权
-- 接口加密:敏感数据的加密传输
-- 接口防护:防重放、防篡改等安全措施
-- 接口限流:基于IP、用户、应用的限流策略
+```mermaid
+graph TB
+ subgraph "加密层级"
+ L1[传输层加密
SSL/TLS/国密SM]
+ L2[存储层加密
TDE透明数据加密]
+ L3[字段级加密
敏感字段加密]
+ L4[备份加密
备份文件加密]
+ end
+
+ subgraph "密钥管理"
+ KMS[密钥管理系统
Key Management]
+ HSM[硬件安全模块
Hardware Security]
+ ROT[密钥轮换
Key Rotation]
+ end
+
+ subgraph "国密算法"
+ SM2[SM2椭圆曲线
非对称加密]
+ SM3[SM3哈希算法
消息摘要]
+ SM4[SM4分组密码
对称加密]
+ end
+
+ L1 --> KMS
+ L2 --> HSM
+ L3 --> ROT
+ L4 --> KMS
+
+ KMS --> SM2
+ HSM --> SM3
+ ROT --> SM4
+```
+
+#### 5.2.2 访问控制安全
+
+```mermaid
+graph TB
+ subgraph "身份认证"
+ AUTH1[用户名密码认证]
+ AUTH2[LDAP集成认证]
+ AUTH3[Kerberos认证]
+ AUTH4[证书认证]
+ end
+
+ subgraph "权限控制"
+ RBAC[基于角色的权限控制
Role-Based Access Control]
+ RLS[行级安全策略
Row Level Security]
+ CLS[列级安全控制
Column Level Security]
+ TENANT[多租户数据隔离
Multi-Tenant Isolation]
+ end
+
+ subgraph "审计监控"
+ AUDIT[操作审计日志
Audit Logging]
+ MONITOR[实时安全监控
Security Monitoring]
+ ALERT[安全告警
Security Alert]
+ REPORT[合规报告
Compliance Report]
+ end
+
+ AUTH1 --> RBAC
+ AUTH2 --> RLS
+ AUTH3 --> CLS
+ AUTH4 --> TENANT
+
+ RBAC --> AUDIT
+ RLS --> MONITOR
+ CLS --> ALERT
+ TENANT --> REPORT
+```
+
+### 5.3 数据安全特性
+- **透明数据加密(TDE)**:自动加密存储数据,支持SM4国密算法
+- **行级安全(RLS)**:基于用户角色的行级数据访问控制
+- **列级权限**:敏感字段的精细化访问控制
+- **动态脱敏**:查询时自动脱敏显示敏感信息
+- **数据备份安全**:备份文件自动加密,支持增量备份
+- **审计日志**:完整记录所有数据库操作,支持合规审计
+
+### 5.4 多租户安全隔离
+- **逻辑隔离**:基于tenant_id的数据隔离
+- **连接隔离**:租户间连接池隔离
+- **权限隔离**:租户级别的权限管理
+- **资源隔离**:CPU、内存、IO资源限制
+
+### 5.5 应用安全
+- **身份认证**:多因素认证,支持短信验证码、邮箱验证等
+- **授权管理**:细粒度的权限控制,支持菜单、按钮、数据权限
+- **安全审计**:用户操作审计,关键业务操作全程记录
+- **密码策略**:密码复杂度、定期更换、失败锁定等安全策略
+- **会话管理**:会话超时、并发限制、单点登录等
+
+### 5.6 接口安全
+- **接口认证**:基于JWT Token的接口认证
+- **接口授权**:基于角色的接口授权和权限验证
+- **接口加密**:敏感数据的加密传输,支持国密算法
+- **接口防护**:防重放、防篡改、防SQL注入等安全措施
+- **接口限流**:基于IP、用户、应用的多维度限流策略
## 6. 部署架构
系统采用集中部署的模式,基于集团私有云环境进行部署。
### 6.1 物理部署
-- 生产环境:高可用集群部署
+- **生产环境**:高可用集群部署
- 应用服务器:2台或以上服务器,负载均衡
- - 数据库服务器:主从架构,实时同步
+ - **OpenGauss数据库集群**:主从+级联备架构,支持自动故障切换
- 缓存服务器:Redis集群
- 文件服务器:冗余存储
-- 灾备环境:异地灾备,定期数据同步
-- 测试环境:用于系统测试和验证
-- 开发环境:用于系统开发和集成测试
+- **灾备环境**:异地灾备,定期数据同步,支持OpenGauss流复制
+- **测试环境**:用于系统测试和验证,单节点OpenGauss部署
+- **开发环境**:用于系统开发和集成测试,单节点OpenGauss部署
### 6.2 逻辑部署
-- 应用服务器集群:负责业务逻辑处理
-- 数据库服务器集群:负责数据存储和管理
-- 文件服务器:负责文档和附件存储
-- 缓存服务器:提高系统性能
-- 负载均衡服务器:实现请求分发和负载均衡
-- 移动应用服务:提供移动端API服务
-- API网关:统一的接口管理和控制
+- **应用服务器集群**:负责业务逻辑处理,支持水平扩展
+- **OpenGauss数据库集群**:负责数据存储和管理,提供高可用保障
+- **文件服务器**:负责文档和附件存储,支持分布式存储
+- **缓存服务器**:Redis集群提高系统性能
+- **负载均衡服务器**:实现请求分发和负载均衡
+- **移动应用服务**:提供移动端API服务
+- **API网关**:统一的接口管理和控制
### 6.3 容器部署
- 基于Docker容器技术实现微服务部署