近日,百度云天工物联网场景正式推出流式计算服务,填补了规则引擎、函数计算等只能针对单个数据流、单个消息处理的局限性。流式计算服务的推出,意味着用户在物联网场景中可利用流式计算服务对单个数据流的前后多个消息,或者多个数据流之间进行聚合计算。
通过流式计算的聚合运算能力,比如求平均、和、最大值、最小值等,可以关联分析多个流之间的联系等。接下来,让我们通过具体案例来了解下流式计算的作用。
以某烟草公司为例,其拥有1000多个烤烟房,每个烤烟房通过一个物解析网关,每分钟采集一次烤烟房的温度、湿度等数据,报送到云端,以实时监控烤烟房内部温湿度是否正常。通过为每一个烤烟房建立一条告警,设定越限条件,当该烤烟房的温湿度越限,则触发短信告警。
不过这种解决方案有个先决条件,即:网关总是能正常地上报数据。但是,导致网关无法上报数据的内外在因素存在很多,比如供电故障、设备故障、网络信号差、环境温度过高等等,这些因素都有可能导致网关意外停止工作。
设计流式计算监控。针对这种情况,流式计算就可以派上大用场,可以巧妙利用流式计算的窗口和时间概念,设计出流式监控,可以实现一个任务就监控上述1000多个设备,并且可以实时、准确报告具体哪个网关在什么时候停止了数据的上报;而增加网关设备时,无需修改任务。
具体解决办法。在物解析的轮询请求设置中,设置网关对Modbus设备的采集周期为60秒,并且每个解析项目解析后的数据转到统一的物接入主题:/modbus/parsed;随后在流式计算中创建名为:device_offine_monitor_src的数据源,数据源的物接入主题即来自上面解析后的主题:/modbus/parsed;流式计算任务中使用的时间类型为PROCESSTIME,可以实现即便监控一个设备,也照样工作;当流式计算任务中的会话窗口一直有数据流进来时,窗口始终不会关闭,不会触发告警;而当一旦某个设备在规定时间内没有数据流进来,则对应的会话窗口就会关闭,并输出一条信息,触发告警。
比如,会话窗口选择了65秒。理想情况下,只要60秒没有收到消,即认为网关故障,考虑到网络传输可能导致的延迟,增加了5秒的等待时间,以免因细小的传输延迟导致误报。
【版权声明】:本站内容来自于与互联网(注明原创稿件除外),供访客免费学习需要。如文章或图像侵犯到您的权益,请及时告知,我们第一时间删除处理!谢谢!