gunshi-project-ss/docs/第4章_项目总体设计.md

21 KiB
Raw Blame History

项目总体设计

4.1 总体架构

黑石咀水库系统采用面向服务的架构模型,建立"基础支撑层-数据支撑层-业务支撑层-业务应用层"的分布式体系架构。总体架构图如下:

架构层次设计

基础支撑层

  • 感知设备体系:集成雨量站、水位站、图像站、末端预警站等监测设备,构建全方位的数据采集网络
  • 传输网络架构:采用水利专网和互联网双通道数据传输,确保数据传输的可靠性和实时性
  • 基础资源平台:基于省政务云水利专区的计算资源、存储资源、安全资源和资源调度服务,为系统提供稳定的基础设施支撑
  • 设备接入管理:通过标准化的数据模型实现设备数据的标准化接入,支持多种类型的监测设备统一管理

数据支撑层

  • 多源数据整合:建设汇聚库、主题库、基础库、共享库、专题库五级数据体系,实现数据的分类管理和高效检索
  • 数据治理平台:对各类基础数据、地理空间数据、监测预报数据进行集成、存储、处理、共享,确保数据质量和一致性
  • 数据同步机制通过定时任务实现5分钟间隔的多源数据同步保证数据的实时性和准确性
  • 数据质量控制:实现数据清洗、验证、标准化处理,为上层应用提供高质量的数据支撑

业务支撑层

  • 算法模型体系
    • 小流域分布式水文模型集成,支持洪水预报和风险评估
    • 简化淹没范围与水深分析模型,提供淹没分析功能
    • 气象数据处理模型支持GRIB2等气象文件的专业处理
    • 空间数据分析模型,提供强大的空间分析能力
  • 应用支撑平台
    • GIS引擎提供专业的地理信息处理和空间分析能力
    • 微服务管理:支持服务的模块化部署和独立扩展
    • 数据支撑平台:提供高效的数据访问和处理能力
    • 消息中心:实现预警消息的统一管理和分发
    • 文件管理:支持大文件的安全存储和高效访问

业务应用层

  • 预报系统:提供气象预报和洪水预测功能,支持多时间尺度的预报分析
  • 预警系统:实现多级别、多类型的预警信息管理,支持实时预警发布和统计
  • 预演系统:提供考核评估和演练管理功能,支持应急响应能力的提升
  • 预案系统:实现应急响应和决策支持,提供完整的应急管理流程

技术架构合理性

微服务架构优势

  • 服务独立性:各业务模块独立部署,单个服务的故障不会影响整体系统运行
  • 技术异构性:不同服务可以采用最适合的技术栈,提高开发效率
  • 弹性伸缩:根据业务负载动态调整服务实例数量,优化资源利用率
  • 持续部署:支持独立的服务更新和部署,加快产品迭代速度

分层架构设计原则

  • 关注点分离:每层专注于特定的功能领域,降低系统复杂度
  • 接口标准化:层间通过标准接口交互,降低耦合度
  • 数据流向清晰:数据在各层间有序流动,便于监控和管理
  • 可扩展性强:各层可以独立扩展,适应业务发展需求

4.2 网络架构

4.2.1 多网络区域架构设计

根据云平台整体架构规划,系统网络接入采用多区域隔离设计,包括互联网接入区、政务外网接入区,每个接入区的业务处理网络彼此隔离。

政务外网及专网区实现

网络分区设计

  • 接入区:提供专线接入湖北省水利厅专网,确保数据传输的安全性和稳定性

    • 外部系统集成通过标准API接口与外部系统进行数据交换
    • 安全认证机制采用Token认证和IP白名单等多重安全措施
    • 动态缓存管理:支持实时缓存清理和更新机制
  • 核心交换区:完成各功能分区之间数据流量的高速交换

    • 数据库主从同步:采用主备架构确保数据安全和高可用性
    • 缓存集群部署:多实例缓存服务提高数据访问效率
    • 负载均衡:基于容器化部署的服务编排和负载分发
  • 运维区:提供远程运维接入服务

    • 安全远程访问:基于密钥认证的安全访问机制
    • 统一日志管理:应用日志和系统日志的集中管理
    • 性能监控:数据库和应用性能指标的实时监控
  • 管理区域:提供数据中心整体的管理功能

    • 用户权限管理:基于角色的访问控制和权限管理
    • 配置管理:多环境配置文件的统一管理
    • 审计日志:操作行为和安全事件的审计跟踪

安全隔离区实现

容器化安全隔离

  • 网络模式采用host网络模式实现负载分担和高性能
  • 端口管理:统一的服务端口管理和访问控制
  • 访问控制基于Token的API访问控制和权限验证

网络安全配置

  • 网络隔离:通过容器技术实现进程和网络层面的隔离
  • 服务编排:基于容器编排工具的服务生命周期管理
  • 资源限制:对容器资源使用进行限制和监控

4.2.2 外部网络集成

三网接入支持

多网络接入架构

  • 电信接入通过外部API配置支持电信网络接入
  • 联通接入:多网络负载均衡和冗余设计
  • 移动接入:移动网络接入支持

外部API集成体系

  • 气象数据API集成气象局提供的气象监测和预报数据
  • 水库数据API接入水库监测系统的实时数据
  • IP白名单管理动态IP白名单管理和访问控制
  • 数据同步API实现多源数据的定时同步和更新
  • 预警信息API集成气象预警系统提供预警信息

4.3 部署架构

4.3.1 容器化部署架构

前端服务器配置

VPC部署设计

  • 独立VPC环境分配弹性IP确保网络访问的独立性
  • 集群技术实现负载分担和高可用,提高系统的可靠性
  • 等保三级安全要求部署WAF、防DDOS、IPS等安全服务

网络优化配置

  • 服务端口管理:统一的服务端口配置和管理
  • 数据压缩启用HTTP压缩提高数据传输效率
  • 静态资源优化:对静态资源进行压缩和缓存优化

后端服务器配置

独立VPC部署

  • 后端服务器在单独的VPC不分配弹性IP提高安全性
  • 内部IP地址交互减少外部攻击面
  • 云防火墙安全隔离,提供网络层面的安全防护

容器编排配置

  • 基础镜像:采用标准化基础镜像确保环境一致性
  • 数据存储:持久化数据存储和备份机制
  • 时区配置:统一的时区配置和时间同步
  • 环境配置:多环境配置管理和动态配置更新

4.3.2 数据引擎部署

PostgreSQL主备架构

主数据库配置

  • 主从同步基于PostgreSQL流复制的数据同步机制
  • 故障转移:自动主备切换机制确保服务连续性
  • 连接池:高性能连接池管理优化数据库访问效率

备用数据库配置

  • 数据一致性:确保主备数据的一致性和完整性
  • 只读服务:备库提供只读服务分担查询压力
  • 监控告警:数据库状态监控和异常告警

缓存系统部署

缓存集群配置

  • 会话管理:用户登录状态和会话信息的缓存管理
  • 查询缓存:热点数据查询缓存提高访问性能
  • 分布式缓存:多实例数据一致性和缓存同步

缓存策略

  • 缓存失效:基于时间的缓存失效策略
  • 缓存更新:数据变更时的缓存更新机制
  • 缓存穿透防护:防止缓存穿透和雪崩的保护机制

4.4 数据架构

4.4.1 数据源体系

数据源

水雨情数据源

  • 数据来源:荆楚水库平台监测数据
  • 接入方式通过标准API接口进行数据接入
  • 数据类型:降雨量、水位、流量等水文监测数据
  • 处理机制:实时数据和历史数据的分类存储和管理

气象数据源

  • 数据来源:省气象局气象监测雨量和预报雨量
  • 接入方式通过标准API接口进行数据接入
  • 数据类型GRIB2气象文件、实时监测数据、预报数据
  • 处理服务:专业的气象预报处理和数据分析服务

大坝安全监测

  • 数据来源:荆楚水库平台监测数据
  • 接入方式通过标准API接口进行数据接入
  • 数据类型:渗流、渗压、位移和白蚁监测数据
  • 同步频率5分钟定时同步确保数据实时性

4.4.2 数据支撑平台

数据处理能力

气象文件处理

  • GRIB2文件解析专业气象网格数据的解析和处理
  • 雷达数据处理:短临预报数据的实时处理和分析
  • 网格计算:基于空间插值算法的网格化计算

数据计算分析

  • 面雨量计算:基于泰森多边形等方法的面雨量权重计算
  • 时间序列分析:历史数据的趋势分析和统计
  • 多维分析:基于数据仓库的多维数据分析

算法模型对接

  • 洪水算法库:专业洪水计算算法的集成和调用
  • 空间分析:几何计算和空间分析引擎
  • 预测模型:气象预报和水文预测模型的集成

数据交换共享平台

数据同步机制

  • 定时同步:基于定时任务的多源数据定时同步
  • 实时同步:关键数据的实时同步和更新
  • 增量同步:基于时间戳的增量数据同步

数据汇聚中心

  • 多源汇聚:来自不同数据源的数据统一汇聚
  • 质量控制:数据质量检查和异常数据处理
  • 标准化处理:数据的标准化和规范化处理

4.4.3 数据库体系

基础数据库设计

实体模型体系

  • 监测数据模型:降雨、水位、流量等监测数据的标准化存储
  • 预警数据模型:预警规则、预警消息、预警统计等数据管理
  • 业务数据模型:考核任务、防治对象、维护计划等业务数据

数据关系设计

  • 一对多关系:防治对象与监测设备的关联关系
  • 多对多关系:考核任务与考核对象的复杂关联
  • 层级关系:行政区划的层级结构管理

4.4.4 数据应用体系

水雨情监测应用

实时监测功能

  • 实时数据展示:监测数据的实时展示和更新
  • 历史数据查询:历史监测数据的检索和分析
  • 数据统计报表:多维度数据的统计分析和报表生成

监测站点管理

  • 站点信息管理:监测站点基本信息的维护
  • 站点状态监控:设备运行状态的实时监控
  • 数据质量评估:监测数据质量的评估和报警

预报应用专题

天气预报功能

  • GRIB2数据处理专业气象文件的解析和处理
  • 网格降雨量计算:基于空间插值的网格化计算
  • 预报结果展示:多时间尺度预报结果的展示

洪水预报功能

  • 水位预测:基于历史数据的水位趋势预测
  • 流量预测:基于水文模型的流量预测
  • 风险评估:洪水风险的评估和预警

预警应用专题

多级预警机制

  • 水位预警:超校核水位、超设计水位、超汛限水位预警
  • 渗压预警:渗流压力监测和多级预警
  • 降雨预警:强降雨监测和预警

预警消息管理

  • 消息推送:基于角色的预警消息推送
  • 状态管理:预警消息的确认和处理状态
  • 统计分析:预警数据的统计和分析

4.5 安全架构

4.5.1 总体安全策略

数据安全策略

敏感数据保护

  • 数据库连接加密采用SSL加密确保数据传输安全
  • API访问认证基于Token的身份认证机制
  • 密码安全:密码的加密存储和安全验证

输入数据安全

  • XSS防护跨站脚本攻击的防护
  • SQL注入防护参数化查询防止SQL注入攻击
  • 输入验证:基于标准的输入数据验证

系统安全策略

访问控制

  • 基于角色的权限控制:细粒度的权限管理
  • API访问控制接口级别的访问控制
  • 数据访问控制:基于用户权限的数据访问控制

审计安全

  • 操作日志记录:用户操作行为的全面记录
  • 系统日志监控:系统运行状态的实时监控
  • 安全事件审计:安全事件的记录和分析

4.5.2 网络安全等级保护

等保三级要求

网络安全防护

  • 网络隔离:政务外网和互联网的区域隔离
  • 访问控制基于IP和端口的访问控制
  • 入侵检测:网络入侵的检测和防护

数据安全防护

  • 数据加密:敏感数据的传输和存储加密
  • 数据备份:定期的数据备份和恢复机制
  • 数据完整性:数据完整性的校验和验证

应用安全防护

  • 应用防火墙Web应用攻击的防护
  • 漏洞管理:定期的漏洞扫描和修复
  • 安全编码:安全编码规范的执行

4.5.3 安全技术体系

计算环境安全

容器安全

  • 容器隔离:进程和网络层面的隔离
  • 镜像安全:基础镜像的安全扫描
  • 运行时安全:容器运行时的安全监控

应用安全

  • 安全框架:集成专业的安全框架
  • 会话管理:安全的会话管理机制
  • 异常处理:统一的异常处理和错误信息管理

数据安全

  • 数据库安全:数据库的安全配置和访问控制
  • 文件安全:文件存储的安全管理
  • 缓存安全:缓存数据的安全保护

安全区域边界

网络边界安全

  • 防火墙:网络边界的防火墙防护
  • 负载均衡:安全的负载均衡配置
  • DDoS防护分布式拒绝服务攻击的防护

应用边界安全

  • 接口控制统一的API接口访问控制
  • 请求限流API访问频率的限制
  • 参数验证:输入参数的严格验证

4.5.4 安全管理体系

安全策略管理

安全策略制定

  • 数据安全策略:敏感数据保护的策略制定
  • 网络安全策略:网络安全防护的策略制定
  • 应用安全策略:应用系统安全的策略制定

安全管理制度

  • 访问控制制度:基于角色的访问控制制度
  • 数据管理制度:数据分类和管理制度
  • 应急响应制度:安全事件的应急响应流程

安全运维管理

安全监控

  • 实时监控:系统安全状态的实时监控
  • 日志审计:安全日志的审计和分析
  • 异常检测:安全异常行为的检测

安全维护

  • 漏洞修复:定期的漏洞扫描和修复
  • 安全更新:系统和应用的安全更新
  • 备份恢复:数据备份和恢复演练

4.6 数据流向

4.6.1 数据采集流程

多源数据采集

山洪5分钟雨量监测数据

  • 数据源全省74个县的山洪5分钟雨量监测数据
  • 采集方式:一站双发形式,确保数据可靠性
  • 处理机制:定时同步任务进行数据采集和处理
  • 数据存储:实时数据表和历史数据表的分类存储

气象1小时雨量监测数据

  • 数据源:省气象局数据库
  • 采集方式:通过数据汇集与共享平台同步
  • 处理机制GRIB2文件解析和网格化处理
  • 数据存储:处理后的网格数据存储和管理

水库1小时雨量监测数据

  • 数据源:省水库处数据库
  • 采集方式:通过数据汇集与共享平台同步
  • 处理机制:定时同步和数据验证
  • 数据存储:水库水位数据的分类存储

数据质量控制

数据验证机制

  • 完整性检查:数据字段完整性的验证
  • 格式检查:数据格式和类型的验证
  • 范围检查:数据值范围的合理性验证

数据清洗流程

  • 异常数据处理:异常数据的识别和处理
  • 重复数据去重基于时间和设备ID的去重
  • 数据标准化:数据格式和单位的标准化

4.6.2 数据处理流程

实时数据处理

实时数据流入

  • 外部API数据通过HTTP请求获取
  • 数据经过解析和验证后存储到数据库
  • Redis缓存更新以提高访问性能
  • 业务服务消费数据并提供前端展示

数据同步机制

  • 基于定时任务的多源数据定时同步
  • 异步处理提高数据同步效率
  • 批量数据处理优化性能
  • 缓存更新确保数据一致性

历史数据处理

数据整编处理

  • 小时数据整编:基于短时间间隔数据生成小时统计数据
  • 天数据整编:基于小时数据生成天统计数据
  • 月数据整编:基于天数据生成月统计数据

数据归档策略

  • 实时数据保留最近30天的实时数据
  • 历史数据:长期保存历史整编数据
  • 统计数据:保存各类统计数据用于分析

4.6.3 数据应用流程

业务数据应用

预报数据应用

  • 气象预报数据GRIB2文件处理和网格化展示
  • 洪水预报数据:基于水文模型的洪水预测
  • 预警数据应用:基于阈值的预警信息发布

管理数据应用

  • 考核数据管理:考核任务的创建和管理
  • 防治对象管理:防治点的信息管理和维护
  • 维护管理:维护计划的制定和执行管理

对外数据共享

数据接口服务

  • REST API标准化的数据访问接口
  • 文件导出:多种格式的数据导出功能
  • 实时推送:实时数据的推送服务

数据安全保障

  • 访问控制:基于权限的数据访问控制
  • 数据脱敏:敏感信息的脱敏处理
  • 审计日志:数据访问的日志记录

4.7 技术路线

4.7.1 微服务架构

服务拆分策略

业务模块化

  • 按业务领域划分:预报、预警、预演、预案等业务模块
  • 按数据类型划分:监测数据、管理数据、统计数据等数据模块
  • 按用户角色划分:管理员、县级用户、普通用户等用户模块

技术组件化

  • 数据同步组件:多源数据同步的定时任务组件
  • 预警处理组件:预警消息的处理和分发组件
  • 预报计算组件:气象预报和水文预测的计算组件

服务治理机制

服务注册发现

  • 服务注册:服务的自动注册和发现
  • 配置中心:多环境配置的统一管理
  • 健康检查:服务健康状态的监控和检查

服务间通信

  • HTTP REST同步的服务调用方式
  • 异步消息:基于消息队列的异步处理
  • 事件驱动:基于事件的松耦合架构

4.7.2 云计算技术

云平台部署

政务云集成

  • 省政务云水利专区部署,确保数据安全和合规性
  • 专属云平台和云产品,提供专业的云服务
  • 独立物理机房安全保障,确保系统稳定运行

容器化部署

  • Docker容器化部署提高部署效率和一致性
  • 容器编排工具的服务编排和管理
  • 持续集成和持续部署的自动化流程

云原生技术

微服务支持

  • 云原生微服务框架,支持微服务架构
  • 云原生配置管理,支持动态配置更新
  • 弹性伸缩和负载均衡,优化资源利用率

DevOps实践

  • 自动化构建基于Maven的自动化构建
  • 自动化测试:单元测试和集成测试
  • 自动化部署:容器化部署的自动化流程

4.8 接口设计

4.8.1 用户接口设计

REST API接口

接口标准化

  • RESTful设计符合REST架构风格的设计原则
  • 统一响应格式标准化的JSON响应格式
  • 错误处理:统一的异常处理机制

接口分组管理

  • 按业务模块分组:预报、预警、管理、系统等模块
  • 按用户角色分组:管理员、县级用户、普通用户等角色
  • 按功能类型分组:查询接口、管理接口、统计接口等类型

前端集成接口

数据查询接口

  • 实时数据查询:监测数据的实时查询接口
  • 历史数据查询:历史数据的检索和分析接口
  • 统计数据查询:统计数据的查询和分析接口

业务操作接口

  • 预警发布接口:预警信息的发布和管理接口
  • 考核管理接口:考核任务的管理接口
  • 系统管理接口:系统配置的管理接口

4.8.2 外部接口设计

气象数据接口

数据获取流程

  • 文件获取:从气象服务器获取气象数据文件
  • 数据解析:专业气象数据的解析和处理
  • 结果计算:基于气象数据的计算和分析

数据处理流程

  • 文件获取从气象服务器获取GRIB2文件
  • 数据解析:解析气象网格数据
  • 结果计算:计算面雨量和预报结果

水文数据接口

数据同步机制

  • Token认证API访问的安全认证机制
  • IP白名单访问IP地址的控制
  • 重试机制:网络异常的重试处理

4.8.3 内部接口设计

服务层接口

业务服务接口

  • 预报服务:气象预报和洪水预测服务
  • 预警服务:预警消息的管理和分发服务
  • 考核服务:考核任务的管理服务

数据服务接口

  • 实时数据服务:实时监测数据的访问服务
  • 历史数据服务:历史数据的检索服务
  • 统计数据服务:统计数据的分析服务

数据访问接口

数据访问设计

  • 基础操作:数据的增删改查操作
  • 自定义查询:复杂业务查询的实现
  • 动态查询:基于条件的动态查询构建

缓存接口设计

  • 查询缓存:查询结果的缓存机制
  • 更新缓存:缓存的更新和清除
  • 分布式缓存:多实例缓存的同步机制