PDM技术领域知识
本文重点说明系统如何支撑业务落地。本文只展开架构和关键技术实现,其他算法、聚合策略和局部实现不再细写,便于后续继续补充。
1. 系统定位
PDM 不是单一诊断服务,而是一套围绕“特征配置、模型训练、诊断展示、事件闭环、边缘计算协同”构建的微服务体系。
main_web负责应用入口、统一启动和基础 Web 能力。foundation负责配置、消息队列、定时任务、JWT、Redis 和启动编排。data_center负责共享数据模型、DTO、Mapper 和基础查询接口。model_manage负责特征管理、模型管理、训练编排、授权和算法实现。equip_manage负责诊断展示、趋势查询、事件管理和设备视角呈现。
整体上,系统把业务配置和计算执行分离:云端做编排、校验、授权、持久化和展示,边缘侧做实时计算和结果回调。
2. 基础架构
2.1 微服务与边云通信
系统同时支持两种调用方式:
- 服务名调用,适合云端服务之间通信。
ip + port直连,适合云端调度边缘节点。
这为“节点在线/离线切换”和“云边协同下发”提供了基础。
2.2 动态配置与启动编排
系统通过动态配置支持运行时切换:
- 节点模式 / 组合模式切换。
- 主服务地址变化。
- 应用范围变化。
启动过程采用状态机式编排,不是简单初始化,这样更容易处理定时任务、外部配置和启动降级。
2.3 基础设施分工
- Redis:计算锁、去重、运行中状态。
- RabbitMQ:异步训练任务。
- Quartz:周期任务和自动流程触发。
这套组合的核心价值是把“即时请求”和“耗时计算”分离开。
3. 关键技术实现
这一部分只描述本系统最关键的实现,不展开具体算法细节。对应的思想是:架构负责承载业务,关键技术负责保证系统可控、可扩展、可追溯。
3.1 云边协同与调用边界
系统采用“云端编排,边缘执行”的协同方式。
- 云端负责配置管理、授权控制、任务编排、结果汇总和历史追溯。
- 边缘节点负责靠近数据源的特征计算、模型计算和结果回调。
- 调用层同时支持服务名调用和直连调用,分别适配云内服务通信和节点调度场景。
这个设计的重点不是“把计算搬到哪里”,而是把业务控制面和计算执行面分开,避免云端既管规则又管实时计算,从而让系统更容易扩展到多节点、多站点场景。
3.2 配置管理与启动编排
系统的配置不是静态常量,而是可动态刷新、可切换运行模式的治理对象。
- 运行期配置支持刷新,便于主服务地址、应用范围和运行模式变更。
- 启动过程采用状态编排而不是一段式初始化,适合处理定时任务、配置拉取、依赖就绪检查等启动动作。
- 配置和启动都强调“可控性”,即先确认环境,再让业务能力逐步进入可用状态。
这里体现的是一种工程原则:系统先稳定启动,再稳定提供能力。
3.3 任务编排与异步化
系统中凡是可能耗时的动作,基本都采用异步或分步编排的方式处理。
- 训练任务通过消息队列异步下发。
- 手动计算通过节点回调更新结果。
- 定时任务通过统一调度器触发。
这样做的核心目的有两个:
- 避免前端接口被长时间占用。
- 避免训练、补算、同步等任务互相抢占资源。
从系统设计角度看,这比“在一个接口里把所有事情做完”更适合工业场景。
3.4 计算锁与结果一致性
系统在手动计算和补算场景下,引入了运行时锁和结果清理机制。
- Redis 用于标记正在计算的对象,防止重复触发。
- 计算前会先清理旧结果,避免新旧结果混杂。
- 删除后会做状态确认,降低异步存储带来的脏读风险。
这一套机制的本质是:让重算可重复、让结果可验证、让并发可控制。
3.5 授权与范围控制
系统不是默认对所有设备开放计算,而是基于授权范围进行控制。
- 设备是否可以进入计算范围,需要先通过授权判断。
- 授权数量有上限,超出时会直接拦截。
- 节点配置和设备授权共同决定最终可执行范围。
这使系统具备了清晰的业务边界,避免边缘侧执行范围失控,也避免配置漂移导致资源滥用。
3.6 历史留痕与可追溯
系统对关键动作普遍保留历史:
- 配置修改有历史。
- 训练过程有历史。
- 手动计算有历史。
- 事件处理也有历史轨迹。
这并不是附加能力,而是预测性维护系统的基础要求。没有历史,就无法复盘模型效果,也无法解释为什么某次诊断结果发生变化。
4. 本文不展开的部分
为了保持这份笔记聚焦,以下内容只保留概念层,不再展开具体实现:
- 特征提取和特征聚合的具体实现。
- 各类模型算法的内部训练细节。
- 趋势图的时间分组和统计聚合逻辑。
- 事件标签、规则命中和诊断结果展示的细节页面逻辑。
这些内容可以在后续需要时,单独补成“算法说明”或“功能实现说明”。
5. 小结
这份技术笔记作为[00 PDM业务领域知识笔记](/00 PDM业务领域知识笔记/)的补充,重点说明的是系统的承载方式,而不是每一段代码怎么写。当前最重要的技术抓手是三件事:
- 云边协同的架构拆分。
- 配置、任务、授权、历史的治理机制。
- 让计算结果可追溯、可重算、可控制。
如果后续继续扩展,建议优先补充的也是这些方向的架构图、时序图和数据流说明,而不是进一步堆叠实现细节。