程序聚合 软件案例 MixIot统计计算服务,基于工业设备的事件流消息数据,以特定的算法做实时的计算

MixIot统计计算服务,基于工业设备的事件流消息数据,以特定的算法做实时的计算

2025-11-21 11:41:40
行业:物联网
载体:网站
技术:Go、MQTT

业务和功能介绍

项目背景:

在工业物联网(IIoT)快速发展的当下,工业生产场景中设备数量激增,生产数据呈现出海量、实时、多维度的特点。企业对生产过程的精细化管控需求日益迫切,不仅需要实时获取设备运行数据,更需要对这些数据进行快速运算处理,以生成如设备用量、运行耗时、积分等具有业务价值的信息,为生产调度、质量管控、设备维护等决策提供支撑。​

功能包括:通过TCP订阅设备数据,接收数据并实时计算,计算算法实现(读数转用量,耗时统计等),数据过滤算法实现,计算结果持久化,重算队列实现

业务流程:

1. 通过 TCP 协议与消息队列(MMQ)建立连接,准备订阅设备生产数据
2. 从数据库加载计算模型并初始化计算项目
3. 从备份快照恢复数据到内存
4. 启动周期性的持久化任务协程
5. 启动重算重算协程池
6. 启动备份快照到磁盘协程
7. 发起数据订阅
8. 启动数据接收协程,并接收数据
9. 数据条件匹配和过滤
10. 调用计算算法,并将结果实时更新到内存
11. 周期性的任务协程从内存加载结果持久化到数据库
12. 客户端通过API请求相对应的结果数据

项目实现

架构风格:事件驱动 + 采用分层设计 核心模块解耦,通过消息队列和协程池实现异步处理。

模块划分及技术栈
1. 通信接入层
职责:负责与外部系统建立连接和数据接收

TCP客户端连接管理

数据订阅和接收

协议解析和数据校验

技术栈:

net (Golang标准库) - TCP连接

context - 连接生命周期管理

自定义协议解析器

2. 数据过滤层
职责:对接收到的原始数据进行清洗和过滤

数据条件匹配

异常数据检测和过滤

数据格式标准化

技术栈:

正则表达式 (regexp)

条件表达式解析执行(exprgo)

自定义过滤规则引擎

3. 计算引擎层
职责:核心业务计算逻辑执行

技术栈:

自定义计算算法实现

内存数据结构管理

实时计算协程

4. 内存管理层

职责:内存数据的管理和维护

内存快照维护

数据恢复机制

内存数据序列化

技术栈:

sync - 并发安全控制

序列化库 (boltdb)

5. 持久化层
职责:数据持久化存储

周期性数据持久化

6. 重算服务层 (Recalculation Service Layer)
职责:处理数据重算任务

重算队列管理

协程池实现

历史数据加载和重算

技术栈:

协程池实现

任务队列 (channel)

InfluxDB客户端 (用于历史数据查询)

分片查询

难点1:由升级或者服务异常停止造成的计算中断引起的计算误差

解决方案:

每5分钟备份存快照到文件

服务启动时从文件快照恢复

难点2:网络延迟造成的计算误差,也就是到了周期时间时,该周期内的数据因为网络延迟并未全部接受到

解决方案:

实时计算协程判断 数据时间>计算周期的结束时间时,自旋等待最多10s, 并发送信号到周期任务执行协程

周期任务执行协程等待实时计算协程发来的信号,最多等待10s,接受到信号就持久化到内存,并发送信号到

实时计算协程解除自旋

难点3: 重算对服务器的负载过高

解决方案:

实现了协程池,限制同一时间最大的重算协程数量

对长周期时间的数据按时间分片查询,比如月统计,一次查询2小时

示例图片视频


Rowlen
30天前活跃
方向: 后端-Go、前端-Web前端、
交付率:100.00%
相似推荐
鲜果运营小程序
用于鲜果公司内部的,主页提供市场服务、物业系统、经营工具,每项目点进去实现具体信息的记录和查询,关联相应的审批流。市场服务主要用于车辆、活动和账户信息,物业用于公司日常的登记、过磅、台账和流水,经营工具是做一些数据的整体管理和统计。
粮食收购点出入口系统-粮食收购点出入口系统
1.为了乡镇粮食收购点的业务功能如:出入库、记录库存、统计查询使用方便 2.满足多个收购点多租户登录使用 3.满足多个品种地磅进行系统适配使用 4.满足多个品牌摄像头接入 5.能够进行实时小票打印,包含销售模块、收购模块,能够根据小票的二维码快速查询信息
江西省人民医院医疗廉洁防控平台
对接医院信息系统,自动归集:处方、医嘱、药品耗材使用、检查检验申请、收费结算、耗材采购、设备采购、患者就诊、医保结算等全量业务数据,形成医疗行为大数据池。 内置风控规则模型,自动筛查异常行为并预警:大处方、重复开药、高频开同类检查、耗材异常使用、同一医生高频开具特定药品 / 耗材、超适应症检查、医保违规结算等;按风险等级分为红 / 黄预警,自动推送至医务、医德医风办、纪检部门。
课表查询(正方教务系统多校适配版)
高校教务系统(正方 jwglxt 等)是学生查询课表、成绩、考试安排的唯一官方入口, 但普遍存在四个现实问题:一是登录需 RSA 加密加密并对接 CSRF 令牌,页面为服务端 渲染的复杂表格,手机浏览器打开体验极差;二是课表的单双周、分段奇偶、调休与临时 停课信息只能靠学生自己推算,极易看错;三是成绩与绩点口径混乱,挂科课程常被错误 计入"已获得学分",导致学生无法与学校数字对账;四是空教室只能逐节次手工查询, 效率极低。学生每周都要反复核对课表与空教室,却缺少一个能在手机上清晰查看、并可 一键导入系统日历的工具。本项目立项,即为解决高校学生在课表、成绩、考试、空教室 四类高频信息上的查询成本问题。
WPF上位机-上位机SCADA/HMI
🌟 核心架构与技术亮点 (Architecture Highlights) 🔄 内存级环形缓冲区 :采用手搓环形队列实现高频采集与消费解耦,极大地降低 C# 垃圾回收 (GC) 压力支撑界面流畅渲染。 ⚡ 自研轻量级数据核心 :轻量级内存数据核心,高性能内存状态机,实时采集点位高速路由,实时状态响应与事件报警分发。 ⏱️ 自适应时间补偿 :基于高精度 Stopwatch 计时,动态修正采集调度周期,抑制高频采集任务的时间漂移与时序抖动 🔒 无饥饿并发控制 :基于轻量级异步锁+线程池隔离策略,PLC通信负载与UI线程解耦。
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服