ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

物联网数据集成:Flow可视化编排与双向数据桥接实战

物联网数据集成:Flow可视化编排与双向数据桥接实战 物联网项目做了六七年接过的设备没有一千也有八百从温度传感器到工业PLC都碰过。说实话我最怕的从来不是设备本身而是“数据怎么从设备端跑到业务系统里”这一堆破事。协议五花八门、格式七零八落、上行数据要采、下行指令要发每次新接一个设备都要写一堆胶水代码改一处牵全身还得担心链路稳定性。后来我慢慢把思路转到“数据集成平台”上核心就两个能力一个是Flow可视化编排另一个是双向数据桥接。这篇文章就围绕这两个关键词把我在实际项目里的设计思路、踩过的坑、以及一套可以直接参考的实操方案完整梳理一遍。1. 物联网数据集成到底在解决什么问题先说清楚一个前提物联网数据集成不是一个纯粹的“技术问题”它本质上是一个“连接问题”。设备端、网关端、云端平台、业务系统每一层都有自己的数据格式和通信习惯如果不做一层统一的集成层那整个系统就是一团乱麻。1.1 从数据孤岛到数据流转场景还原我在一个工厂数字化项目里接过三类设备一类是走Modbus RTU的老式电表一类是走MQTT协议的新式温湿度传感器还有一类是走HTTP接口的PLC控制器。这三类设备如果直接对接业务系统业务系统就得分别写三套解析逻辑而且每一路数据的格式、字段命名、上报频率完全不一样。这还只是一个车间如果是整个园区、整座城市级别的设备接入数据源的异构程度会呈指数级上升。真正让项目“难做”的点在于数据在设备端产生之后要经过网关汇聚、边缘处理、云端转发最终落到数据库或者消息队列里供业务系统消费。这中间任何一环掉链子数据就断了。而且物联网场景和传统IT场景最大的不同在于——设备侧的状态是随时变化的网络环境也不稳定断网重连、IP变化、设备重启都是常态。如果集成层不做容错设计数据链路就会反复断裂。说白了物联网数据集成要解决的问题就是在异构、动态、不可靠的网络环境下把设备产生的数据稳定、有序、可管理地送达到目标系统同时还能把业务系统的指令可靠地送回到设备端。这就是“数据流转”的完整闭环。1.2 为什么需要Flow可视化编排而不是硬编码早期我做集成都是用Python脚本或者Java服务硬编码一个设备一条链路代码堆得越多维护成本越高。后来接了一个项目设备种类只有十几种但每种的字段映射、转换规则、上报策略都有差异十几套逻辑写下来光维护配置文件就要花掉我三分之一的时间。换成Flow可视化编排之后情况完全不一样了。每个设备的数据处理逻辑变成了一张“流图”哪里是数据入口、哪里做字段映射、哪里做条件过滤、哪里做协议转换全部一目了然。改一条规则不用重新发版直接在编排界面上拖一拖、连一连就完事了。我自己的体会是可视化编排最大的价值不在于“不用写代码”而在于把数据处理的逻辑从代码里“抽”出来变成可以随时调整、随时追踪、随时复用的资产。这也是为什么后来DolphinScheduler这类任务调度工具在数据集成领域越来越火——它们解决的是“流程怎么组织”的问题Flow编排解决的是“数据怎么流转”的问题本质上都是把逻辑可视化、编排化降低集成链路的维护成本。1.3 双向数据桥接的价值不只是“采集数据”只做单向上报的数据集成其实只解决了一半问题。比如远程控制一个阀门开度、远程升级一个固件、下发一组配置参数这些都需要从业务系统往设备端推数据。如果集成层没有双向通道这些操作就只能靠人工到现场完成效率极低。我在一个智能路灯项目里就吃过亏。最初只做了路灯状态的上报链路所有的开关指令都是运维人员到现场手动操作后来想改成远程控制发现平台的指令根本到不了灯杆控制器因为集成层压根没有预留下行通道。重新加下行链路花了整整一周中间还要处理设备在线状态、指令超时、重试机制等一系列问题。所以我现在做任何物联网集成项目第一件事就是确认“这个项目需不需要双向桥接”如果要那上行和下行链路就必须从一开始就设计好而不是等上线了再补。2. Flow可视化编排的核心设计拆解可视化编排这个词听起来玄乎但拆开来看它的核心就是三个元素节点、连线、数据流。节点负责干具体的活连线决定了数据的流向数据流则在节点之间穿梭。下面我把每个部分拆开讲。2.1 节点、连线和数据流编排引擎的基本构成每个节点其实就是一个独立的功能单元它接收输入数据经过处理后产生输出。节点本身的粒度可大可小——可以是一个“解析JSON”的小功能也可以是一个“调用HTTP接口”的动作单元可以是一个“设备接入监听器”也可以是一个“规则引擎分支”。连线则决定了数据在节点之间的传递顺序。这个顺序有两种形态一种是线性管道数据从A节点流到B节点再流到C节点另一种是条件分支根据数据内容决定走哪条路径比如“温度大于80℃走告警分支否则走正常采集分支”。数据流是整个编排的中心。每个节点的输入输出都遵循统一的数据结构比如统一的JSON消息格式这样节点之间就不需要做额外的适配。我见过有些编排工具每个节点用自己的数据格式结果连完一个流程之后还要专门做字段转换这种做法纯属自己给自己挖坑根本不推荐。提示设计Flow编排的时候建议先在纸上把数据流图画出来不要直接上手拖节点尤其是复杂场景。数据流图画清楚之后节点怎么连、哪里有分支、哪里需要汇聚心里就有谱了后面只是把纸上的图“翻译”成对应的编排节点。2.2 常用节点类型与处理能力我梳理一下自己在实际项目里最常用的几类节点接入节点负责接收外部数据包括MQTT订阅节点、HTTP接收节点、TCP/UDP监听节点、定时轮询节点等。这类节点的核心是把设备或系统的数据“拉”进编排流里是整个流程的入口。解析与转换节点负责处理数据的格式包括JSON解析、XML解析、二进制报文解析、字段映射、数据类型转换、编码转换等。这类节点解决了多协议、多格式适配的问题是整个编排引擎里最被执行频繁的部分。路由与过滤节点负责数据的流向控制包括条件判断、内容过滤、去重、阈值告警等。这类节点的核心价值在于“选择性流转”让有用的数据继续往下走无用的数据直接在流里被拦截掉。动作节点负责数据的最终输出包括写数据库、调用业务系统HTTP接口、发送消息到Kafka、推送告警通知等。动作节点是编排流程的出口也是数据桥接层的关键部分。调试与日志节点负责在流程的关键位置输出调试信息方便排查问题。我在初期的流程调试阶段几乎每个分支节点后面都会挂一个调试节点看数据到底走到哪里去了。这五类节点基本覆盖了我在物联网集成里的绝大多数需求。实际使用下来大概80%的场景用不到更复杂的节点类型真正决定一个编排引擎好不好的在于节点编排的灵活性和数据转换的能力而不在于节点数量多不多。2.3 编排的发布与执行机制流式还是批式编排引擎的执行模式有两种一种是流式执行一种是批式执行这两者差别很大选错模式后面会很痛苦。流式执行适合设备持续上报数据的场景。数据每到达一次就立即触发一次流程节点之间的数据传递是实时的延迟一般在毫秒到秒级。我大部分物联网项目走的都是流式模式因为设备数据本身就是源源不断的流式数据。批式执行适合周期性处理的场景。比如每天凌晨汇总前一日的设备数据、生成报表、同步到数据仓库这种场景就不适合一条一条地实时处理而是要用定时任务批量拉取数据走一次完整流程得到一个批量的结果。DolphinScheduler这种任务调度平台在批式数据集成里就很有用——它可以编排复杂的定时任务DAG和Flow可视化编排是互补的关系。我个人建议是同一套集成平台里同时支持流式和批式两种模式流式实时处理、批式周期汇总互不干扰这样项目的适应面会宽很多。2.4 编排的调试与版本管理可视化编排最大的坑在于改流程的时候很爽出了问题想回滚的时候很难受。有一次我在生产环境改了一个设备的字段映射逻辑改完发现新版流程有问题流量全部报错但工作流的历史版本又没保留好最后只能靠人工修复数据折腾了大半夜。后来我给自己定了几条铁律 第一生产环境流程改动必须经过调试模式验证调试模式可以把真实数据“喂”进流程里只走日志不走实际输出确认无误之后再发布成正式版本。 第二每次发布前必须自动生成版本快照万一出问题可以一键回滚到上一个版本。 第三大版本改动尽量小步快跑不要一次改十几个节点那样排查问题就像大海捞针。一次改一个节点验证一个节点先保证局部正确再整体发布。3. 双向数据桥接从设备到云、从云到设备的完整闭环单向的数据上报只能算“数据采集”双向数据桥接才是真正的“数据集成”。因为集成意味着两个方向的数据都要打通而不是只把设备的数据搬上云。3.1 什么叫“双向”数据桥接双向数据桥接包含两个方向的数据通路。上行方向是从设备端到业务系统的遥测数据、状态数据、事件告警下行方向是从业务系统到设备端的控制指令、配置下发、固件升级。这两个方向的技术特征差异很大。上行数据是设备主动推送的通常是高频、大流量、低时延要求数据格式相对固定。下行数据是业务系统主动发起的通常是低频、高可靠、强即时性数据格式和设备期望的报文格式往往不一致需要做格式转换。我之前维护一个智能农业项目上行数据是温湿度传感器每5秒上报一次一天下来差不多17000条消息数据量不算大但频率高下行数据是远程开关灌溉阀门一天也就几十条但每条都不能丢。这两个方向采用的技术策略完全不同——上行走轻量级消息队列下行走带确认机制的命令通道不能混在一起处理。3.2 物联网网关与传感器的IP关系一个很关键的底层细节做桥接设计的时候有一个底层细节必须搞清楚——物联网网关与传感器的IP关系。很多刚入行的同学都会踩这个坑以为所有的设备都能直接通过IP访问到实际上在物联网场景里传感器和网关之间的关系通常有两种形态。第一种是网关做代理。传感器本身没有独立IP它们通过RS485、ZigBee、LoRa等协议连接到网关由网关统一汇聚数据再以网关自身的IP和端口与平台通信。这种场景下集成层能看到的就是一个个网关传感器只是网关底下的“子设备”平台下行指令也只能发到网关由网关再转发给具体传感器。第二种是传感器独立入网。比如支持Wi-Fi或4G的传感器每一个设备都有自己的IP地址可以直接和平台通信。这种场景下集成层看到的是一张“IP地址表”每个IP对应一个具体的传感器。这两种形态对下行指令的路由设计影响很大。网关代理模式下平台发出的指令要额外携带子设备的ID网关才能正确转发独立入网模式下指令直接按IP寻址即可。如果这两者的适配逻辑没搞清楚桥接链路一定会出问题。注意在做设备接入清单的时候一定要逐项确认每个设备是“有IP”还是“无IP”是和网关共用IP还是独立IP。这个表格提前做好后面做桥接路由的时候会省很多事否则设备接入了才发现下不了行指令返工的量非常大。3.3 无源物联网给桥接架构带来的新变化最近行业里“无源物联网”这个概念讨论得挺多我个人的理解是它属于“微能量采集”路线设备本身不带电池或者电池极小靠射频能量、光伏、振动等方式获取工作能量。无源设备的特点是不能7x24小时在线可能只在被“唤醒”的时候才能通信。这个特点直接冲击了传统双向桥接的设计假设。传统模式下平台以为设备一直在线发指令随时能到无源物联网下设备大部分时间处于静默状态指令可能发出去半天设备才被唤醒收到也可能设备压根没醒。这就对下行链路的“可靠送达”提出了更高要求——指令不能简单地“发出去就完”而是要缓存起来等待设备下一次上线或者下一次唤醒时再“补投递”。我当时在做方案设计的时候针对这种场景做了一个“指令暂存与缓存重发”的机制平台侧把下发给无源设备的指令存储下来等设备上线之后通过上线事件触发补发流程。如果你的项目里有类似的无源或者低功耗设备一定要提前考虑到这种机制否则远程控制就是一句空话。3.4 双向桥接的技术实现要点双向桥接的核心技术选型我一般看三个维度协议层、消息层、安全层。协议层上行和下行协议不一定非要用同一个但尽量统一。我现在最常用MQTT原因是它对物联网场景的支持非常完善——支持QoS分级、遗嘱消息、主题订阅机制尤其适合双向通信。HTTP作为补充用于一些简单的、低频的接口调用场景。如果设备的通信协议各不相同那就需要网关层先把协议统一成MQTT或者HTTP再接入到集成平台。消息层上行数据走消息队列的发布/订阅模式可以让多个业务系统同时消费同一份数据下行指令走请求/响应模式业务系统发出指令之后平台要负责把指令转发给设备并且等待设备执行结果的回执超时未回执的要触发重试。安全层双向桥接比单向上报多了一类风险——业务系统发出的下行指令如果有误直接影响的是物理世界。所以链路鉴权、TLS加密、指令白名单这些机制必须配置齐全。我见过很多项目只做了上行数据的加密下行指令裸奔这个隐患非常大一旦被恶意注入指令后果不堪设想。3.5 可靠送达机制ACK与重试双向桥接最核心的可靠性机制就是ACK确认。我用一个生活化的例子来解释上行数据就像你寄快递寄出去就行丢件了物流公司会重新发。下行指令就像你给朋友发微信问“在吗”如果朋友没回你就得再发一遍——因为你不确定他到底看到没有。技术实现上ACK机制分三层 第一层是网络层的ACK比如MQTT的QoS 1和QoS 2就是消息代理层的确认 第二层是设备层的ACK设备收到指令并成功执行之后主动回一个“执行成功”或者“执行失败”的消息 第三层是业务系统层的ACK业务系统收到设备的上行数据之后可以回执确认这样设备端也清楚数据已经被消费了。在实际项目里我通常要求下行指令必须收到设备层的ACK才认为“送达成功”否则进入重试队列重试次数默认3次间隔递增比如1分钟、5分钟、15分钟。超过3次仍失败的人工告警介入。这套机制虽然简单但从那之后我的项目里“指令静默丢失”的问题几乎没再出现过。4. 实操从零搭建一套Flow编排与双向桥接的参考方案理论讲了一大堆下面给一套可以直接照做的参考方案。我以物联网场景里最常见的MQTTHTTP组合为例基于开源工具描述一套完整的从零搭建过程。4.1 方案选型开源工具的组合拳我优先推荐的开源组合是Node-RED作为Flow可视化编排引擎 EMQX作为MQTT消息代理 一套轻量的业务API服务比如Spring Boot或者FastAPI作为HTTP业务入口。Node-RED的结构和图数据库很相似它是一款浏览器端可视化编排工具拖拽节点、连线、部署非常直观。它对MQTT、HTTP、WebSocket等协议的节点支持很完善而且社区节点库非常丰富基本覆盖了我日常用到的绝大多数协议。EMQX则是一款开源的MQTT消息代理高并发、低延迟、可集群部署在物联网场景下非常稳。这套组合的好处在于全部开源、社区活跃、上手门槛低、可扩展性强。如果你更倾向于在一个大平台里解决所有问题可以考虑Apache NiFi或者DolphinScheduler这类更偏企业级的数据集成与调度平台。NiFi也支持可视化流程设计但它的学习曲线比Node-RED陡一些。DolphinScheduler在批式任务调度上的能力很强但实时流处理能力相对弱一些。具体用哪套取决于项目里实时数据的比重。4.2 上行数据链路搭建步骤我以“Modbus电表通过网关接入然后转发到业务系统数据库”为例走一遍完整的上行链路。第一步网关侧协议接入。电表通过RS485接到网关网关负责把Modbus报文读取出来转换成MQTT消息发布到EMQX的某个主题比如factory/meter/{deviceId}/raw。HTTP/HTTPS协议的话就直接POST到平台的接收接口。第二步Node-RED订阅数据。在Node-RED里拖一个MQTT In节点配置EMQX连接信息订阅factory/meter/#所有电表数据就自动“流入”Node-RED了。这一步只要MQTT的主题路由设计清晰理论上后面加多少设备都不用改流程新设备自动按主题接入。第三步数据解析与字段映射。拖一个JSON解析节点把MQTT的payload解析成可处理的JSON对象。然后拖一个Function节点自定义JS函数把原始报文的字段改写成业务系统需要的字段名。比如原始报文里的v代表电压业务系统里叫voltage就在Function节点里做映射。这里注意字段映射的规则建议集中维护在一个配置节点里不要在十几个Function节点里各写一份映射逻辑否则后续要改字段名的时候得一个一个节点去改非常痛苦。第四步过滤和缓存。如果业务系统不需要每条数据都入库可以拖一个Switch节点做条件过滤比如只保留“电压值在范围之外”的异常数据进入告警链路、正常数据进入存储链路。如果需要批量入库可以加一个“缓存批量”节点缓存到一定条数或者一定时间之后再批量写入数据库这样能显著降低数据库的压力。实测下来批量入库比逐条入库在性能上能优化一个数量级。第五步数据入库。拖一个MySQL节点或者InfluxDB、TDengine等时序数据库节点配置好连接信息和INSERT语句此时上行数据链路就通了。数据从电表-网关-EMQX-Node-RED-数据库整个过程完全可视化。到这里一台电表的完整上行链路就搭建完了。如果要接入第二台电表只需要在EMQX上新增一个主题其他环节基本不需要改动这就是Flow可视化编排带来的“设备接入成本随量递减”的效果。4.3 下行指令链路搭建步骤下行链路和上行链路是“镜像”关系。从业务系统到设备端的完整链路是业务API → Node-RED HTTP In节点 → 指令路由 → MQTT发布 → 网关接收 → 设备执行 → ACK回执 → 业务系统确认。第一步业务系统发起指令。业务系统通过HTTP调用Node-RED的HTTP In节点请求体里带上设备ID和指令内容。比如要远程打开1号电表的继电器就POST一个JSON包含{deviceId:meter_001,action:relay_on}。第二步指令路由与解析。Node-RED收到HTTP请求之后先判断指令类型然后根据设备ID去“设备注册表”我通常维护一份设备ID与MQTT主题的映射关系里找到对应的下行主题。这一步非常关键决定了指令最终发给谁如果主题映射错了指令就会发到错误的设备。第三步MQTT发布。使用MQTT Out节点把指令发送到factory/meter/{deviceId}/command主题。这里我强烈建议开启QoS 1确保消息至少送达一次。QoS 0虽然更轻量但存在丢失风险在控制指令场景绝对不能接受。第四步网关接收与设备执行。网关侧订阅factory/meter//command主题收到指令后转换成Modbus写寄存器操作驱动电表继电器动作。执行完成后网关再发布一条执行结果消息到factory/meter/{deviceId}/ack主题。第五步ACK回执与状态同步。Node-RED订阅ACK主题收到执行结果之后回调业务系统接口把执行结果上报给业务系统。业务系统收到“执行成功”的回执后才把这笔指令标记为“已完成”。如果超时未收到回执Node-RED的“定时重发”机制会启动自动把指令重新发布一次。提示把“指令下发”和“指令执行确认”这两个动作分开是双向桥接和单向数据上报最本质的区别。前者只是把指令“发出去”后者要拿到“执行结果”。这部分的流程设计如果一开始就做对后面做设备控制类应用会顺很多否则每次控制指令都要靠人工确认那这套系统的价值就大打折扣了。4.4 设备IP与网关IP的映射关系维护在实操过程中发现很多故障的根源其实是“设备地址信息维护不当”。我在项目里建了一张“设备地址映射表”字段包括设备ID、设备名称、设备IP如果有、网关ID、网关IP、设备在网关下的子地址如Modbus的从站地址、下行主题、上行主题。这张表是整个桥接链路的路由依据。每一台设备接入之前先在表里登记然后在Node-RED里维护一份主题映射的配置数据。设备接入之后所有的上行数据、下行指令都靠这张表来路由。我在这块踩过一个很大的坑就是一张表里漏了“子地址”字段结果平台下发指令到网关网关不知道要转发给底下的哪个传感器指令石沉大海。4.5 双向桥接中的安全配置安全层面我做三件事。一是开启EMQX的TLS端口所有MQTT通信走加密通道。二是Node-RED的HTTP In节点加上API密钥鉴权HTTP请求必须在Header里带正确的token才能访问。三是针对下行指令做“指令白名单”只允许预设好的几条指令模板通过其他指令一律拦截。这三层防护加下来既解决了传输加密的问题也解决了指令注入的问题。实测效果这套配置在第三方渗透测试里的评估结果是“未发现高危险性漏洞”作为物联网业务系统的集成层安全性是可以过关的。5. 常见问题与排查技巧实录每个做过物联网数据集成的人一定都遇到过下面这些问题。我把常见的几类整理一下附上我自己的排查思路和解决方案。5.1 数据延迟大、流量控制不住怎么办表现设备上报的数据积压在集成层到达数据库的时间有几秒甚至几分钟的延迟。排查思路先确认是“哪一段”慢了。在Node-RED的每类节点后面挂一个调试节点记录消息流入流出的时间戳很快就能定位到瓶颈。实测下来最常见的瓶颈在“入库”环节——数据量大的时候逐条写入数据库会造成严重的IO瓶颈。解决方案尽可能批量入库缓存一定条数或一定时间后再写。高频数据走时序数据库不要总往关系型数据库里塞。如果数据量到了千万级/天架构层面要上消息队列加流式计算引擎比如Kafka FlinkNode-RED只管接入和轻量处理重活交给流式计算平台。5.2 连接闪断、消息丢失表现MQTT连接时不时断开重新连接之后期间的数据丢了。排查思路这种情况90%以上是因为网络不稳定导致连接中断MQTT的QoS配置又设为0或者客户端没有开启自动重连和会话保持。解决方案QoS等级至少设为1至少送达一次。MQTT客户端开启Clean Sessionfalse持久会话这样连接断开期间的消息会缓存在代理端重连之后自动补发。Node-RED的MQTT节点自带“自动重连”选项务必打开。涉及重要数据在上行链路落地之后要加一个“数据完整性校验”比如每隔一段时间对一次数据库里的消息序号发现缺漏就主动向设备端拉取补发。5.3 数据格式错乱、字段对不上表现设备上报的数据到了业务系统里有的字段是对的、有的是空的、有的类型变了。排查思路这类问题几乎都出在“解析节点”和“映射节点”的配置上。比如设备上报的JSON里某个字段可能不存在解析的时候没有做空值保护就直接报错或者写出空值又比如设备上报的是字符串“123”业务系统需要的是数字123没做类型转换就写入数据库了。解决方案解析节点统一加“空值保护”字段不存在或值为空时给一个默认值。字段映射统一使用“显式映射表”不要随手在Function节点里写隐式转换方便排查字段映射问题。每个关键节点后面挂调试节点把消息内容打出来看一眼确认格式没问题再往后走。数据格式问题10次里有9次是这个操作能定位出来的。5.4 公网场景的安全边界问题表现设备端和平台端不在同一个局域网数据要走公网担心被窃听或者被伪造。解决方案所有设备接入统一走TLS加密。设备端每个设备有独立的Client ID和用户名密码不能所有设备共用一个。平台对外只暴露必要的端口其他的全部不开。下行指令一律加指令白名单和操作审计。安全这东西说实话没有“完美”但基本的三件套加密、鉴权、审计做了能挡掉99%的常规攻击。剩下的1%就看项目的实际安全要求有多高了。5.5 设备离线了指令发不出去表现设备因为断网或者休眠离线了平台这时候下发指令消息直接失败。解决方案平台侧维护一份“设备在线状态表”通过MQTT的遗嘱消息实时更新。指令下发之前先检查设备是否在线在线就下发不在线就进入“待发送”队列。等设备重新上线通过MQTT连接事件触发之后自动补发“待发送”队列里的指令。针对无源物联网或者低功耗设备这个“离线暂存、在线补发”的机制尤为重要。6. 一点关于工程化落地的个人体会工具和技术选型其实只是第一步真正让物联网数据集成稳定运行下去的往往是一些工程化层面的细节。第一设备接入流程一定要规范化。我见过很多项目死就死在“设备接入没有标准流程”上新设备进来就临时加一段代码、临时改一个配置日积月累整个集成层就变成一个谁也不敢动的“脏乱差”系统。规范化的接入流程应该是登记设备信息 → 分配设备ID和主题 → 配置解析规则 → 发布流程到生产环境 → 观察日志确认数据正常。每一步都有记录每一步都有验证。第二监控和告警必须在第一天就搭好而不是最后一天。数据链路不通的时候如果没有监控往往是业务方先发现然后才通知你排查。主动监控的核心是“数据心跳”——设备正常上报的时候链路里有持续的数据流一旦数据流停止超过一定时间比如5分钟立刻触发告警推送。这样链路出问题你比业务方更快知道。第三把编排逻辑沉淀成可复用的模板。不同的设备类型它们的接入流程大部分是相似的差异只在于协议解析和字段映射。所以我在Node-RED里会把“通用接入”流程做成模板新设备接入时复制一份模板只改解析和映射部分极大缩短接入时间。最后再分享一个小技巧无论选型用的是哪套工具先把“数据字典”定义清楚再动手搭流程。数据字典里定义好每个字段的名称、类型、单位、取值范围、是否必填。设备上报的数据、业务系统的数据最终都映射到这份数据字典上。这个动作看上去很“非技术”但它能直接避免掉后期大量的字段对不上、映射凌乱的坑。我在项目里因为提前做了数据字典后来业务系统换了供应商对接成本几乎为零这就是提前规划的价值。
返回列表