【技术实现步骤摘要】
IOT集群内发送同步消息的方法
本专利技术涉及IOT平台
,具体而言涉及一种-IOT集群内发送同步消息的方法。
技术介绍
物联网(IOT)平台是指将各种设备连接到统一的管理平台,实现设备和平台之间数据采集和命令下发的双向通信。在物联网环境下,终端设备与IOT是通过socket长连接保持相互之间的通信,在分布式环境下,IOT服务会部署多个节点,而终端设备只能与其中一个节点建立连接,而此时调用方利用http向IOT发送请求命令获取设备的数据,然后同步等待IOT的响应,与此同时设备在收到IOT下发的命令后,立即回复响应结果,但是设备回复响应的IOT与下发命令的IOT可能不是一个节点,而造成调用方等待超时。目前来说,是通过回调的方式解决的。例如通过回调的方式将设备响应的结果转发给调用方,由调用方自己添加业务逻辑来处理回调返回的响应内容。结合图1-3所示,IOT集群环境下,通过http请求向设备发送命令并同步等待设备回复的消息,不管设备所在连接在哪个节点上,发起的http请求总能同步等待后收到设备回复的响应。r>
技术实现思路
...
【技术保护点】
1.一种IOT集群内发送同步消息的方法,其特征在于,包括以下步骤:/n步骤1、启动Eureka注册中心,IOT集群节点向Redis订阅主题;/n步骤2、IOT暴露http接口,接收请求,并根据设备是够在线的结果查询与设备连接的目标节点,并将目标节点的信息存入分布式缓存中以及将结果对象存储到本地;/n步骤3、设备收到请求命令回复响应,获取本地缓存中的结果对象并释放结果对象的锁,并把收到的消息放入结果对象。/n
【技术特征摘要】
1.一种IOT集群内发送同步消息的方法,其特征在于,包括以下步骤:
步骤1、启动Eureka注册中心,IOT集群节点向Redis订阅主题;
步骤2、IOT暴露http接口,接收请求,并根据设备是够在线的结果查询与设备连接的目标节点,并将目标节点的信息存入分布式缓存中以及将结果对象存储到本地;
步骤3、设备收到请求命令回复响应,获取本地缓存中的结果对象并释放结果对象的锁,并把收到的消息放入结果对象。
2.根据权利要求1所述的IOT集群内发送同步消息的方法,其特征在于,所述步骤1的具体实现包括:
第一步:启动Eureka注册中心;
第二步:IOT集群节点向Eureka注册,并暴露自己的IP+PORT;
第三步:IOT集群节点分别向Redis订阅主题,主题格式:iot_notify_IP+PORT。
3.根据权利要求1所述的IOT集群内发送同步消息的方法,其特征在于,所述步骤2的具体实现包括:
第一步:暴露http接口,接收请求,所述接收的http请求中携带请求ID,且唯一;
第二步:判断设备是否在线:如果设备不在线,结束返回结果;否则进入第三步;
第三步:查询与设备连接的节点:通过查询数据库得到设备连接的节点,并获取目标节点注册在Eureka注册中心上的IP+PORT;
第四步:把目标节点的IP+PORT存入分布式缓存redis中:把设备编号sn+请求ID作为key,与设备连接的节点IP+PORT作为value,存入分布式缓存Redis中;
第五步:创建结果对象,并把结果对象存储本地缓存:把请求ID作为key,结果对象作为value,存在本地缓存;
第六步:把请求命令转发给目标节点,所述请求命令中携带请求ID
第七步:目标节点收到消息,发送给设备...
【专利技术属性】
技术研发人员:杨帆,邓马伟,
申请(专利权)人:南京甄视智能科技有限公司,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。