程序聚合 软件案例 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%
相似推荐
智能生产大屏
智能化生产运行交付管理体系由左、中、右三个主要模块构成。左侧模块专注于展示当前规模化生产的整体运营概况。其上半部分通过一系列累积数据直观展现了从订单到交付的全过程。数据分析从进度、成本、质量和效率四个关键维度展开,清晰呈现了各生产要素的趋势变化。下半部分则重点展示与运营相关的核心指标,以便全面监控和优化生产运营状况。
踩踩停车物联网车位共享
对接小区车牌识别摄像头,通过Lora通讯协议接受车牌数据,实现超时计费机制,超时先短信提醒,超过10分钟自动计费,支持车位车主电话提醒,实现已预约车辆自动抬杆。依据ui设计稿,使用小程序原生语法完成前端界面开发与页面适配。对接小区车牌识别摄像头,通过Lora通讯协议接受车牌数据,实现超时计费机制,超时先短信提醒,超过10分钟自动计费,支持车位车主电话提醒,实现已预约车辆自动抬杆。依据ui设计稿,使用小程序原生语法完成前端界面开发与页面适配
网络安全策略平台
1.项目主要分为态势大屏和后台管理 2.对终端,服务器,路由器,防火墙等设备的在线采集信息及时发现风险并生成告警发送给用户 3.用户可在系统创建专项任务并在此专项任务中绘制和编辑当前单位的单位拓扑和设备拓扑 4.态势模块用户可在态势页面中的地球上开到各个区域内的单位,和部署的设备,并且可以在三维地球上手动对有关系的单位和单位,单位和设备,设备和设备进行连线绘制,以及可以查看单位和设备的信息
甜品蛋糕商城前端网页 - 电商展示与选购平台 
为线下甜品店开发的线上蛋糕商城网页,用于展示商品、引导用户选购。页面包含顶部导航栏(城市切换、商品分类、团购预约、关于我们等入口)、商品列表模块,支持展示草莓蛋糕、巧克力蛋糕等多款甜品的图片、名称与价格,提供“加入购物车”功能,同时适配不同屏幕尺寸,保证用户浏览体验,帮助店铺实现线上引流与商品展示。
Windows系统应用UI自动化-UI自动化工具
核心功能 - 任务管理 :通过配置文件定义任务组和任务参数,支持多任务并行执行 - 任务调度 :智能调度任务执行,监控任务状态,处理超时任务 - 自动化UI操作 :通过图像识别技术实现Windows应用程序的自动化操作 - 进程管理 :自动启动和终止应用程序进程 - 配置管理 :通过JSON配置文件管理任务参数和系统设置 整体架构 配置层 - 负责加载和管理配置文件 - 提供配置验证和访问接口 - 支持打包和未打包状态的配置文件加载 任务管理层 - 任务初始化和管理 - 任务调度和监控 - 异常任务修复 控制层 - 控制任务执行流程 - 协调各页面操作 - 处理异常情况 页面操作层 - 封装各页面的 UI 操作 - 提供页面元素定位和操作方法 - 通过图的数据结构及最短路径算法,实现页面间的导航 工具层 : - 系统操作工具 - 文件操作工具 - Windows 操作工具 - 公共方法
帮助文档   Copyright @ 2021-2024 程聚宝 | 浙ICP备2021014372号
人工客服