边缘计算高阶功能

(融合重构版:与 Shadow + Points + OPC UA 架构一致性)

强约束(工业化一致性):

  • 北向零改动,完全复用现有 MQTT 与 OPC UA Server。
  • 共享源与规则不得直接订阅点位变化;唯一输入源为设备级原子快照(Shadow)。
  • 发布由 Points Commit 唯一触发;控制统一走工作流闭环(Check → Delay → Write → Confirm)。

统一数据流:

南向驱动 → Channel → Device → Points → Shadow Device(原子快照)
  → Snapshot Bus(共享源层) → Dispatch → Rule Execution Pool → Result Processor
  → Workflow / Log / Commit → Points Commit → MQTT & OPC UA(复用)

优化阶段:共享源与并发优化设计(高性能边缘计算)


一、阶段目标

高级阶段目标是在前两阶段(基础规则 + 时间窗口 + 状态管理)的基础上,实现:

  1. 共享源机制:同一数据源可被多规则共享,避免重复采集与重复计算;
  2. 高并发与异步执行优化:支持大量规则与高频数据流同时执行;
  3. 分布式/集群能力(可选):在多节点边缘环境下分布式协作处理;
  4. 高级数据计算能力

    • 窗口间跨时间计算;
    • 规则组合和复杂逻辑;
    • 批量聚合、趋势预测、异常检测;
  5. 运维与监控升级

    • 系统性能监控;
    • 窗口与状态资源使用优化;
    • 并发规则调度监控。

二、总体架构扩展

2.1 数据流与共享源设计

数据流路径升级为:

南向采集 / 北向订阅 → 输入适配器 → 共享源缓存(数据快照) → 调度引擎 → 规则执行单元 → 结果处理器 → 北向输出 / 本地控制

共享源缓存(Shared Source Layer)

  • 以 Shadow 快照为唯一源,生成版本化共享事件(SnapshotEvent),避免重复采集;
  • 可供多个规则并发订阅,避免重复计算;
  • 支持事件缓存、去重、异步分发与优先级(Pack 高优先)。
SnapshotEvent 定义与触发
type SnapshotEvent struct {
    DeviceID  string
    Version   uint64
    Data      map[string]Value
    Timestamp time.Time
    Quality   QualityState
}
  • 触发:OnSnapshot(DeviceID, Version);不使用 OnPointChange
  • 节奏:窗口合并(~250ms);高负载时对 Cell 分区降采样(5s→10s)。

2.2 分层架构

新增 共享源层(Shared Source Layer),整体架构分层如下:

  1. 数据输入层(Input Layer)
  2. 共享源层(Shared Source Layer)
  3. 数据调度层(Dispatch Layer)
  4. 规则执行层(Rule Execution Layer)
  5. 结果处理层(Result Handling Layer)
  6. 运维监控层(Observability Layer)

三、核心功能模块设计

3.1 共享源缓存机制

  • 功能描述

    • 数据源采集后的原始数据缓存;
    • 支持多规则订阅和异步分发;
    • 数据可根据规则需求自动转换格式或单位;
  • 关键特性

    • 去重与缓存策略(环形缓冲、滑动队列等);
    • 异步分发队列(保证规则不阻塞主通道);
    • 支持共享源的状态信息(最近更新时间、数据质量、订阅规则列表)。

3.2 高并发调度与执行优化

  • 功能目标

    • 支持大量规则同时处理高频快照事件;
    • 保证单条规则执行不阻塞其他规则;
  • 实现策略

    1. 异步事件驱动(以 SnapshotEvent 为触发源);
    2. 并行规则线程池与优先级调度(Pack 高优先);
    3. 批量数据处理机制(窗口聚合、批量触发动作);
    4. 超时保护、重试与熔断(失败不影响采集与北向发布)。

3.3 高级规则能力

3.3.1 基于版本的跨窗口规则

  • 基于 Snapshot Version 的滑动/跳跃窗口;
  • 支持趋势分析、累计统计、增量计算;
  • 规则只关心版本递增,不依赖点位更新顺序。

3.3.2 组合规则优化

  • 多条件组合(AND / OR / NOT)规则支持;
  • 支持跨数据源、跨窗口、跨状态的联合判断;
  • 支持条件优先级和条件权重。

3.3.3 异常检测与预测规则

  • 支持突变检测、波动率异常、时间序列预测(简单趋势);
  • 支持自动生成告警或控制动作。

3.4 分布式/集群执行(可选)

  • 分布式节点协作(前提约束)

    • 每节点仅维护本地设备 Shadow;不跨节点合并同一设备状态;
    • 规则可跨节点并行,Snapshot 不跨节点混合;
    • 输出动作集中或分散执行,统一走工作流闭环。
  • 数据同步策略

    • 使用轻量化消息队列分发快照事件;
    • 以设备边界保障共享源跨节点一致性。

3.5 运维与监控升级

  • 性能监控

    • 每条规则平均执行时间;
    • 规则并发数;
    • 窗口缓存使用率;
    • 状态存储访问延迟;
    • 共享源分发延迟。
  • 异常告警

    • 共享源延迟/缓存溢出告警;
    • 规则执行失败告警;
    • 系统资源压力告警。
  • 调优工具

    • 可动态调整规则优先级、线程池大小、窗口缓存大小;
    • 支持负载均衡和节点扩容。

四、配置模型扩展

4.1 共享源配置字段

  • 设备ID(源自 Shadow)
  • 窗口合并时长(window_ms,建议 250)
  • 队列容量与优先级(Pack 高优先)
  • 异步分发开关
  • 订阅规则列表
  • 数据过期策略

4.2 高并发规则配置字段

  • 优先级
  • 异步执行开关
  • 最大并行线程数
  • 批量触发阈值

4.3 高级规则配置字段

  • 跨窗口引用(基于 Snapshot Version)
  • 组合逻辑表达式
  • 异常检测阈值
  • 预测规则参数(简单趋势预测公式)

七、配置示例(现场可直接启用)

# system.yaml(节选)

snapshot_bus:
  window_ms: 250          # 快照事件合并窗口
  queue_capacity: 10000   # 事件队列容量
  async: true             # 异步分发开关
  priority:               # 设备/分区优先级
    pack: high
    cell: normal
  subscriptions:          # 订阅列表(按设备与模式)
    - device: rack_01
      include: ["pack_*", "cell_*", "alarm_*"]
      exclude: []
    - device: rack_02
      include: ["pack_*", "alarm_*"]
      exclude: []

rule_engine:
  thread_pool:
    size: 32              # 规则线程池大小
    max_queue: 5000       # 规则任务队列容量
  scheduling:
    priority_enabled: true
    batch_window_ms: 250  # 规则批量触发窗口
  time_window:
    enabled: true         # 基于 Snapshot Version 的窗口计算

points_commit:
  differential: true      # 差量写回 Points,触发北向发布(MQTT/OPC UA 复用)

五、前端页面功能设计(高级阶段增强)

  1. 共享源管理页面

    • 数据源共享状态展示;
    • 订阅规则列表;
    • 缓存使用率、最新数据、数据质量;
    • 异步分发延迟与异常告警。
  2. 高并发规则监控页面

    • 规则执行线程池状态;
    • 执行延迟分布图;
    • 并发规则数、批处理统计;
    • 高负载告警。
  3. 跨窗口/组合规则管理

    • 可视化配置跨窗口依赖;
    • 组合条件拖拽配置;
    • 多数据源关联规则可视化。
  4. 分布式节点监控

    • 节点状态、共享源同步状态;
    • 节点负载、规则执行状态;
    • 输出动作分布和成功率。
  5. 性能调优控制台

    • 动态调整线程池大小、规则优先级;
    • 窗口缓存调整;
    • 共享源分发策略调整。

六、交付成果标准

  1. 共享源机制以 Shadow 快照为唯一源,多规则共享,无重复采集与重复计算;
  2. 支持高并发规则执行,单规则执行不阻塞主数据通道;
  3. 基于版本的跨窗口、组合规则与异常检测稳定运行;
  4. 系统性能指标可监控并优化(事件分发/窗口缓存/并发线程池等);
  5. 可选分布式执行,Snapshot 按设备边界确保一致;
  6. 前端可监控共享源、规则执行、窗口缓存、状态存储和性能指标;
  7. 系统稳定运行,无明显性能退化或数据丢失,且北向零侵入。