无需服务器开发,IoT物联网平台+表格存储OTS实现设备状态缓存方案

简介: 无服务器开发,实现设备最新状态缓存
+关注继续查看

IoT平台规则引擎+表格存储OTS实现当前设备状态存储

背景

IoT场景中,设备往往会定时上报自己当前的运行状态参数,供运维人员查看设备状态。

架构方案

image.png

开发实战

1.水泵定时上报业务消息

水泵监控场景中,每10分钟会定时上报运行状态到IoT平台,具体通信Topic和payload如下:

// 定时上报运行状态的Topic
/${productKey}/${deviceName}/user/bizHeart/post
// 对应payload结构体
{
    status: 'RUNNING', //运行状态 RUNNING,STOP,SHUTDOWN
    speed: 3000, //当前转速
    waterOutput: 125,//当前出水量
    workingTime: 72//工作时长 xx分钟
}

2.表格存储设计

创建一个数据表,以设备deviceName为主键,扩展信息为设备当前状态。
image.png

image.png

3.规则引擎配置

设备上报数据后,通过规则引擎实时流转到表格存储中。
image.png

3.1 数据处理SQL

SELECT 
deviceName() as deviceName,
attribute('coordinate') as coordinate, 
attribute('city') as city, 
timestamp('yyyy-MM-dd HH:mm:ss') as currentTime,
status,speed,waterOutput,workingTime 
FROM 
"/a1vYwzHjT6p/+/user/bizHeart/post"

3.2 数据转发

image.png

4.设备运行

4.1 设备基本信息,和设备标签

image.png

4.2 设备上报的消息日志

image.png

4.3 消息流转日志

image.png

4.4 表格存储中设备信息

image.png

结束语

通过以上方案,设备状态上报时,自动更新到表格存储中。我们就可以提供deviceName在表格存储中查到设备当前运行状态。

相关实践学习
阿里云表格存储使用教程
表格存储(Table Store)是构建在阿里云飞天分布式系统之上的分布式NoSQL数据存储服务,根据99.99%的高可用以及11个9的数据可靠性的标准设计。表格存储通过数据分片和负载均衡技术,实现数据规模与访问并发上的无缝扩展,提供海量结构化数据的存储和实时访问。 产品详情:https://www.aliyun.com/product/ots
相关文章
|
9月前
|
机器学习/深度学习 缓存 Oracle
【数据库设计与实现】第7章:缓存与检查点
缓存与检查点设计原则数据缓冲区与检查点是相辅相成的,所以放在同一个章节介绍。由于CPU与持久化设备之间存在巨大的速度差距,所以在内存中引入缓冲区缩小这个差距。从读的角度来看,将热点数据或预判用户可能读取的数据提前加载到内存中,从而将持久化设备的读时延和带宽提升至内存的时延和带宽。从写的角度来看,直接修改缓冲区中的数据而不是磁盘中的数据,可以带来两方面的优势。其一,将持久化设备的写时延和带宽提升至内
【数据库设计与实现】第7章:缓存与检查点
|
9月前
|
缓存 JSON Java
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
247 1
java 实现读取txt文件,反射创建对象,android 手机缓存文件目录
|
9月前
|
存储 缓存 算法
基于LinkedHashMap实现LRU缓存
基于LinkedHashMap实现LRU缓存
106 0
基于LinkedHashMap实现LRU缓存
|
9月前
|
缓存 算法 安全
如何使用 LinkedHashMap 实现 LRU 缓存?
在上一篇文章里,我们聊到了 HashMap 的实现原理和源码分析,在源码分析的过程中,我们发现一些 LinkedHashMap 相关的源码,当时没有展开,现在它来了。 那么,LinkedHashMap 与 HashMap 有什么区别呢?其实,LinkedHashMap 的使用场景非常明确 —— LRU 缓存。今天,我们就来讨论 LinkedHashMap 是如何实现 LRU 缓存的。
81 0
|
10月前
|
存储 缓存 算法
手把手使用 PHP 实现 LRU 缓存淘汰算法
手把手使用 PHP 实现 LRU 缓存淘汰算法
124 0
手把手使用 PHP 实现 LRU 缓存淘汰算法
|
11月前
|
消息中间件 缓存 分布式计算
SparkStreaming+Kafka 实现统计基于缓存的实时uv
SparkStreaming+Kafka 实现统计基于缓存的实时uv
102 0
SparkStreaming+Kafka 实现统计基于缓存的实时uv
|
11月前
|
消息中间件 缓存 分布式计算
SparkStreaming+Kafka 实现基于缓存的实时wordcount程序
SparkStreaming+Kafka 实现基于缓存的实时wordcount程序
81 0
SparkStreaming+Kafka 实现基于缓存的实时wordcount程序
|
缓存 NoSQL Java
基于注解实现缓存的框架 -- SpringCache
Spring Cache是一个框架,实现了基于注解的缓存功能,只需要简单地加一个注解,就能实现缓存功能,大大简化我们在业务中操作缓存的代码。
基于注解实现缓存的框架 -- SpringCache
|
缓存 JavaScript Serverless
js: 实现一个cached缓存函数计算结果
js: 实现一个cached缓存函数计算结果
156 0
|
缓存 Java 数据库
SpringBoot2.x系列教程40--SpringBoot中默认的缓存实现方案
前言 在上一节中,壹哥 带大家学习了Spring Boot中提供的缓存实现方案,尤其是Spring Cache这种实现方案,接下来在本章节中,我将带大家通过代码来具体实现缓存功能。 一. Spring Boot实现默认缓存 1. 创建Web项目 我们按照之前的经验,创建一个SpringBoot的Web程序,具体过程略。 2. 添加依赖包 在pom.xml文件中添加如下核心依赖包。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</
360 0
相关产品
物联网平台
推荐文章
更多