CN114490759A - 一种设备影子的管理方法及应用其进行设备监控的方法 - Google Patents
一种设备影子的管理方法及应用其进行设备监控的方法 Download PDFInfo
- Publication number
- CN114490759A CN114490759A CN202210038631.7A CN202210038631A CN114490759A CN 114490759 A CN114490759 A CN 114490759A CN 202210038631 A CN202210038631 A CN 202210038631A CN 114490759 A CN114490759 A CN 114490759A
- Authority
- CN
- China
- Prior art keywords
- shadow
- equipment
- database
- middleware
- cache middleware
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16Y—INFORMATION AND COMMUNICATION TECHNOLOGY SPECIALLY ADAPTED FOR THE INTERNET OF THINGS [IoT]
- G16Y20/00—Information sensed or collected by the things
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Mathematical Physics (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种设备影子的管理方法及应用其进行设备监控的方法。所述设备影子的管理方法包括:根据设备ID查询缓存中间件和数据库中的设备影子;若缓存中间件和数据库反馈的查询结果均为空,则为所查询的设备创建一个新的设备影子,并同时保存到缓存中间件和数据库;若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子;若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同。本申请一方面保证了设备影子读写的高性能,另一方面既保证了设备影子的高可用性和可靠性,又保证了双向同步的高效性。
Description
技术领域
本申请涉及物联网技术领域,更为具体来说,本申请涉及一种设备影子的管理方法及应用其进行设备监控的方法。
背景技术
设备影子是物联网平台中的重要组件,是存储了设备最新上报和下发的属性状态的JSON文档,是用户和设备之间的缓冲,规避用户直接请求设备造成的压力,规避设备不在线无法接收数据的问题。目前各个物联网平台对设备影子的定义和实现差别较大,大部分实现机制为简单的上下行数据缓存,并没有深入挖掘设备影子的功能。鉴于设备影子在物联网平台的重要性,设备影子需要持久化,以便在系统重启或数据迁移后设备影子保持原有状态。设备影子通常维护在缓存中间件或数据库中,维护在缓存中间件时读写效率高,但是持久化、可靠性较低,容易出现数据丢失,一旦发生故障数据恢复困难。维护在数据库时可靠性高,读写性能较差,但是设备影子在物联网平台中读写非常频繁,读写速度慢会导致很多功能响应缓慢,导致用户体验差。
另一方面,由于物联网平台大量设备为低功耗型,无法长时间与服务器保持连接以维持在线状态,无法对设备是否离线进行感知,所以设备运行状态监控也是物联网平台的一个痛点。相关技术中,通常通过设置定时任务来刷新设备运行状态,从数据库中查询设备的最大空闲时长和上报数据时间来判断设备运行状态,大量设备情况下该方法效率低、实时性差,平台中设备的运行状态和设备实际运行状态经常有很大偏差。如果设备具备消息收发能力,也可以通过轮询的方式主动给设备发送消息检测运行状态,如果设备在限定时间内响应消息,那么则认为设备在线,但是额外的消息收发会给设备增加网络负载和性能消耗,而且大量设备情况下该方法效率低。
发明内容
基于上述技术问题,本发明旨在实现设备影子缓存中间件和数据库的双向同步,提升数据读取速度,且数据存储持久化和可靠性高。
本发明第一方面提供了一种设备影子的管理方法,应用于物联网平台,所述方法包括:
根据设备ID查询缓存中间件和数据库中的设备影子;
若缓存中间件和数据库反馈的查询结果均为空,则为所查询的设备创建一个新的设备影子,并同时保存到缓存中间件和数据库;
若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子;
若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同。
具体地,所述若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子,包括:
若缓存中间件的查询结果为空且数据库的查询结果不为空,则将数据库中该设备的设备影子保存到缓存中间件中;
若数据库的查询结果为空且缓存中间件的查询结果不为空,则将缓存中间件中该设备的设备影子保存到数据库中。
进一步地,所述若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同,包括:
若缓存中间件中的设备影子和数据库中的设备影子版本号相同,则判断该设备属性是否有变更;
若缓存中间件中的设备影子和数据库中的设备影子版本号不同,则比较设备影子版本号大小。
具体地,所述判断该设备属性是否有变更,包括:如果该设备属性有变更则将变更内容保存到缓存中间件,如果没有变更则缓存中间件和数据库均不更新。
进一步地,所述若缓存中间件中的设备影子和数据库中的设备影子版本号不同,则比较设备影子版本号大小,包括:
若数据库中的设备影子版本号大于缓存中间件中的设备影子版本号,则判断该设备属性是否有变更,若有变更将变更内容保存到缓存中间件;
若数据库中的设备影子版本号小于缓存中间件中的设备影子版本号,则将缓存中间件中的设备影子版本号更新到数据库中。
本发明第二方面提供了一种应用本发明各实施方式中所述设备影子的管理方法进行设备监控的方法,在设备被创建或被激活时,创建该设备的设备影子同时存储于缓存中间件和数据库,其中,所述设备影子包括设备ID、设备最大空闲时长、设备运行状态和设备影子版本号,所有设备的设备影子组成设备影子集合;
当设备上报数据到设备网关时,根据设备ID查询出该设备的设备影子,若设备运行状态有变化,则将该设备影子版本号加一并将对应的设备影子保存到缓存中间件;
利用消息中间件将查询到的设备运行状态广播给物联网平台中各服务节点;
基于当前时刻和所述设备最大空闲时长计算该设备最后空闲时刻,并将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重。
进一步优选地,所述将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重之后,还包括:
将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重进行排序组成的集合记作离线通知任务集合,其中,离线通知任务集合存储在缓存中间件;
将所述离线通知任务集合加入到时间轮定时器,并设置任务延时时间为设备最大空闲时长;
时间轮定时器触发所述离线通知任务集合,并经消息中间件进行广播,及经缓存中间件进行存储;
其中,在时间轮定时器触发所述离线通知任务集合,并经消息中间件进行广播前,若某设备上报数据,则从所述离线通知任务集合中删除该设备对应的任务。
再进一步地,所述时间轮定时器触发所述离线通知任务集合,并经缓存中间件进行存储,包括:在离线通知任务集合中添加或删除某一设备ID的任务时,在缓存中间件的离线通知任务集合中同步进行添加或删除。
本发明第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以下步骤:
根据设备ID查询缓存中间件和数据库中的设备影子;
若缓存中间件和数据库反馈的查询结果均为空,则为所查询的设备创建一个新的设备影子,并同时保存到缓存中间件和数据库;
若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子;
若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同。
本发明第四方面提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
根据设备ID查询缓存中间件和数据库中的设备影子;
若缓存中间件和数据库反馈的查询结果均为空,则为所查询的设备创建一个新的设备影子,并同时保存到缓存中间件和数据库;
若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子;
若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同。
本申请的有益效果为:本申请所述设备影子的管理方法将设备影子在缓存中间件和数据库之间双向同步,一方面要求设备影子读写在缓存中间件进行,保证了读写的高性能,另一方面要求按照设备最大空闲时长定时同步设备影子到数据库,既保证了设备影子的高可用性和可靠性,又保证了双向同步的高效性;同时,设备影子版本号减少了同步的频率,大大减少了同步时造成的数据库压力。
再者,本申请应用所述设备影子的管理方法进行设备监控的方法的应用场景将更广泛,一方面采用时间轮定时器执行离线通知任务,服务器性能消耗小,实时性高,可以在发现设备离线第一时间通知其他服务节点;另一方面在其他服务节点定时任务从离线任务集合获取任务进行运行状态监控,避免了设备网关故障导致的离线任务丢失,保证了运行状态监控的高可用性。
附图说明
构成说明书的一部分的附图描述了本申请的实施例,并且连同描述一起用于解释本申请的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本申请,其中:
图1示出了本申请示例性实施例中的设备影子的管理方法之步骤示意图;
图2示出了本申请示例性实施例中设备影子的管理方法流程图;
图3示出了本申请示例性实施例中应用设备影子的管理方法进行设备监控的方法之过程示意图;
图4示出了本申请示例性实施例所提供的一种计算机设备的结构示意图;
图5示出了本申请示例性实施例所提供的一种存储介质的示意图。
具体实施方式
以下,将参照附图来描述本申请的实施例。但是应该理解的是,这些描述只是示例性的,而并非要限制本申请的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本申请的概念。对于本领域技术人员来说显而易见的是,本申请可以无需一个或多个这些细节而得以实施。在其他的例子中,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行描述。
应予以注意的是,这里所使用的术语仅是为了描述具体实施例,而非意图限制根据本申请的示例性实施例。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在所述特征、整体、步骤、操作、元件和/或组件,但不排除存在或附加一个或多个其他特征、整体、步骤、操作、元件、组件和/或它们的组合。
现在,将参照附图更详细地描述根据本申请的示例性实施例。然而,这些示例性实施例可以多种不同的形式来实施,并且不应当被解释为只限于这里所阐述的实施例。附图并非是按比例绘制的,其中为了清楚表达的目的,可能放大了某些细节,并且可能省略了某些细节。图中所示出的各种区域、层的形状以及它们之间的相对大小、位置关系仅是示例性的,实际中可能由于制造公差或技术限制而有所偏差,并且本领域技术人员根据实际所需可以另外设计具有不同形状、大小、相对位置的区域/层。
下面结合说明书附图1-5给出几个实施例来描述根据本申请的示例性实施方式。需要注意的是,下述应用场景仅是为了便于理解本申请的精神和原理而示出,本申请的实施方式在此方面不受任何限制。相反,本申请的实施方式可以应用于适用的任何场景。
设备影子是物联网平台中的重要组件,是存储了设备最新上报和下发的属性状态的JSON文档,存储设备各种属性,鉴于设备影子在物联网平台的重要性,设备影子需要持久化,以便在系统重启或数据迁移后设备影子保持原有状态。设备影子通常维护在缓存中间件或数据库中,维护在缓存中间件时读写效率高,但是持久化可靠性较低,容易出现数据丢失,一旦发生故障数据恢复困难。维护在数据库时可靠性高,读写性能较差,但是设备影子在物联网平台中读写非常频繁,读写速度慢会导致很多功能响应缓慢,导致用户体验差。
因此在本申请的一些示例性实施例中,提供了一种设备影子的管理方法,如图1所示,包括:
S1、根据设备ID查询缓存中间件和数据库中的设备影子;
S2、若缓存中间件和数据库反馈的查询结果均为空,则为所查询的设备创建一个新的设备影子,并同时保存到缓存中间件和数据库;
S3、若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子;
S4、若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同。
参考图2,根据设备ID查询数据库中的设备影子,可简称DbShadow,根据设备ID从缓存中间件中查询设备影子可简称CacheShadow。如图2所示,如果DbShadow和CacheShadow都为空,创建一个新的设备影子,同时保存到缓存中间件和数据库;如果DbShadow为空与CacheShadow不为空,将CacheShadow保存到数据库;如果DbShadow不为空与CacheShadow为空,将DbShadow保存到缓存中间件;如果DbShadow和CacheShadow都不为空,比较两个影子的版本号。
如果版本号相同,需要判断设备状态是否有变更,如果有变更保存到缓存中间件,如果没有变化缓存中间件和数据库均不更新,如果DbShadow版本号大于CacheShadow版本号,需要判断状态是否有变更,如有变更修改DbShadow运行状态然后保存到缓存中间件,如果CacheShadow版本号大于DbShadow,直接将CacheShadow更新到数据库。这里设备影子存储设备的各属性,例如设备ID、设备最大空闲时长、设备运行状态、设备影子版本号等等,在判断设备状态是否有变更时,也是根据设备ID查看对应的设备影子,看所存储的设备属性值包括但不限于设备离线或上线状态属性是否变更,若变更,将变更后的内容同步存储在数据库或缓存中间件。
可见,本申请所述设备影子的管理方法将设备影子在缓存中间件和数据库之间双向同步,一方面要求设备影子读写在缓存中间件进行,保证了读写的高性能,另一方面要求按照设备最大空闲时长定时同步设备影子到数据库,既保证了设备影子的高可用性和可靠性,又保证了双向同步的高效性;同时,设备影子版本号减少了同步的频率,大大减少了同步时造成的数据库压力。
物联网平台中所有设备影子读取和更新都通过缓存中间件进行,但是需要设置定时任务从缓存向数据库同步,定时任务时间周期根据设备最大空闲时长范围进行设置,最大空闲时长越小时间周期设置越小,比如最大空闲时长为0到30秒时设置时间周期为30秒,最大空闲时长为30到60秒时设置时间周期为60秒,以此类推。任务执行完成后才设置下一次任务的执行时间。
因此在本申请一些示例性实施例中,还提供了一种应用所述设备影子的管理方法进行设备监控的方法,如图3所示,包括:在设备被创建或被激活时,创建该设备的设备影子同时存储于缓存中间件和数据库,其中,所述设备影子包括设备ID、设备最大空闲时长、设备运行状态和设备影子版本号,所有设备的设备影子组成设备影子集合;当设备上报数据到设备网关时,根据设备ID查询出该设备的设备影子,若设备运行状态有变化,则将该设备影子版本号加一并将对应的设备影子保存到缓存中间件;利用消息中间件将查询到的设备运行状态广播给物联网平台中各服务节点;基于当前时刻和所述设备最大空闲时长计算该设备最后空闲时刻,并将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重。
这里需要说明的是,物联网是新一代信息技术的重要组成部分,也是“信息化”时代的重要发展阶段。其英文名称是:“Internet of things(IoT)”。顾名思义,物联网就是物物相连的互联网。物联网通过智能感知、识别技术与普适计算等通信感知技术,广泛应用于网络的融合中,也因此被称为继计算机、互联网之后世界信息产业发展的第三次浪潮。物联网是互联网的应用拓展,与其说物联网是网络,不如说物联网是业务和应用。因此,应用创新是物联网发展的核心,以用户体验为核心的创新2.0是物联网发展的灵魂。完整的IoT平台需要硬件,如传感器、设备、时间轮定时器等等,当然完整的IoT平台也包括软件,比如数据库、缓存中间件、消息中间件等等。
在一种优选的实施方式中,所述将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重之后,还包括:将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重进行排序组成的集合记作离线通知任务集合,其中,离线通知任务集合存储在缓存中间件;将所述离线通知任务集合加入到时间轮定时器,并设置任务延时时间为设备最大空闲时长;时间轮定时器触发所述离线通知任务集合,并经消息中间件进行广播,及经缓存中间件进行存储;其中,在时间轮定时器触发所述离线通知任务集合,并经消息中间件进行广播前,若某设备上报数据,则从所述离线通知任务集合中删除该设备对应的任务。在另一种优选的实施方式中,所述时间轮定时器触发所述离线通知任务集合,并经缓存中间件进行存储,包括:在离线通知任务集合中添加或删除某一设备ID的任务时,在缓存中间件的离线通知任务集合中同步进行添加或删除。
如图3所示,设备上报数据到设备网关,时间轮定时器会触发对设备的状态信息的广播或存储,广播通过物联网平台中的消息中间件,存储则存在缓存中间件,如果在设备离线通知任务执行前设备再次上报数据,那么取消已存在的任务,并按照上述步骤重新加入任务。如果任务执行前设备没有进行数据上报,删除离线任务集合中的设备ID,如果设备ID不存在导致删除失败,则认为该任务已经被其他服务节点执行了,如果设备ID删除成功,则执行设备离线通知任务。根据设备ID查询设备影子,若该设备运行状态为离线,将影子版本号加一,保存设备影子到缓存中间件,并将设备离线的事件广播给物联网平台中各服务节点。
本申请应用所述设备影子的管理方法进行设备监控的方法的应用场景将更广泛,一方面采用时间轮定时器执行离线通知任务,服务器性能消耗小,实时性高,可以在发现设备离线第一时间通知其他服务节点;另一方面在其他服务节点定时任务从离线任务集合获取任务进行运行状态监控,避免了设备网关故障导致的离线任务丢失,保证了运行状态监控的高可用性。
下面请参考图4,其示出了本申请的一些实施方式所提供的一种计算机设备的示意图。如图4所示,所述计算机设备2包括:处理器200,存储器201,总线202和通信接口203,所述处理器200、通信接口203和存储器201通过总线202连接;所述存储器201中存储有可在所述处理器200上运行的计算机程序,所述处理器200运行所述计算机程序时执行本申请前述任一实施方式所提供的设备影子的管理方法,所述计算机设备可以是具有触敏显示器的计算机设备。
其中,存储器201可能包含高速随机存取存储器(RAM:Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口203(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网、广域网、本地网、城域网等。
总线202可以是ISA总线、PCI总线或EISA总线等。所述总线可以分为地址总线、数据总线、控制总线等。其中,存储器201用于存储程序,所述处理器200在接收到执行指令后,执行所述程序,前述本申请实施例任一实施方式揭示的所述设备影子的管理方法可以应用于处理器200中,或者由处理器200实现。
处理器200可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器200中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器200可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器201,处理器200读取存储器201中的信息,结合其硬件完成上述方法的步骤。
本申请实施例提供的计算机设备与本申请实施例提供的设备影子的管理方法出于相同的发明构思,具有与其采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种与前述实施方式所提供的设备影子的管理方法对应的计算机可读存储介质,请参考图5,图5示出的计算机可读存储介质为光盘30,其上存储有计算机程序(即程序产品),所述计算机程序在被处理器运行时,会执行前述任意实施方式所提供的设备影子的管理方法。
另外,所述计算机可读存储介质的例子还可以包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他光学、磁性存储介质,在此不再一一赘述。
本申请的上述实施例提供的计算机可读存储介质与本申请实施例提供的空分复用光网络中量子密钥分发信道分配方法出于相同的发明构思,具有与其存储的应用程序所采用、运行或实现的方法相同的有益效果。
本申请实施方式还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现前述任意实施方式所提供的设备影子的管理方法的步骤,所述方法的步骤包括:根据设备ID查询缓存中间件和数据库中的设备影子;若缓存中间件和数据库反馈的查询结果均为空,则为所查询的设备创建一个新的设备影子,并同时保存到缓存中间件和数据库;若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子;若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同。
需要说明的是:在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备有固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本申请也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本申请的内容,并且上面对特定语言所做的描述是为了披露本申请的最佳实施方式。在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在上面对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序。实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种设备影子的管理方法,其特征在于,应用于物联网平台,所述方法包括:
根据设备ID查询缓存中间件和数据库中的设备影子;
若缓存中间件和数据库反馈的查询结果均为空,则为所查询的设备创建一个新的设备影子,并同时保存到缓存中间件和数据库;
若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子;
若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同。
2.根据权利要求1所述的设备影子的管理方法,其特征在于,所述若缓存中间件和数据库反馈的查询结果有一个为空,则在查询结果为空的缓存中间件或数据库中保存相应的设备影子,包括:
若缓存中间件的查询结果为空且数据库的查询结果不为空,则将数据库中该设备的设备影子保存到缓存中间件中;
若数据库的查询结果为空且缓存中间件的查询结果不为空,则将缓存中间件中该设备的设备影子保存到数据库中。
3.根据权利要求1所述的设备影子的管理方法,其特征在于,所述若缓存中间件和数据库反馈的查询结果均不为空,则比较缓存中间件中的设备影子和数据库中的设备影子版本号是否相同,包括:
若缓存中间件中的设备影子和数据库中的设备影子版本号相同,则判断该设备属性是否有变更;
若缓存中间件中的设备影子和数据库中的设备影子版本号不同,则比较设备影子版本号大小。
4.根据权利要求3所述的设备影子的管理方法,其特征在于,所述判断该设备属性是否有变更,包括:如果该设备属性有变更则将变更内容保存到缓存中间件,如果没有变更则缓存中间件和数据库均不更新。
5.根据权利要求3所述的设备影子的管理方法,其特征在于,所述若缓存中间件中的设备影子和数据库中的设备影子版本号不同,则比较设备影子版本号大小,包括:
若数据库中的设备影子版本号大于缓存中间件中的设备影子版本号,则判断该设备属性是否有变更,若有变更将变更内容保存到缓存中间件;
若数据库中的设备影子版本号小于缓存中间件中的设备影子版本号,则将缓存中间件中的设备影子版本号更新到数据库中。
6.一种应用如权利要求1-5所述的任一方法进行设备监控的方法,其特征在于,所述方法包括:
在设备被创建或被激活时,创建该设备的设备影子同时存储于缓存中间件和数据库,其中,所述设备影子包括设备ID、设备最大空闲时长、设备运行状态和设备影子版本号,所有设备的设备影子组成设备影子集合;
当设备上报数据到设备网关时,根据设备ID查询出该设备的设备影子,若设备运行状态有变化,则将该设备影子版本号加一并将对应的设备影子保存到缓存中间件;
利用消息中间件将查询到的设备运行状态广播给物联网平台中各服务节点;
基于当前时刻和所述设备最大空闲时长计算该设备最后空闲时刻,并将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重。
7.根据权利要求6所述的进行设备监控的方法,其特征在于,所述将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重之后,还包括:
将设备最后空闲时刻作为设备影子集合中各设备ID的排序权重进行排序组成的集合记作离线通知任务集合,其中,离线通知任务集合存储在缓存中间件;
将所述离线通知任务集合加入到时间轮定时器,并设置任务延时时间为设备最大空闲时长;
时间轮定时器触发所述离线通知任务集合,并经消息中间件进行广播,及经缓存中间件进行存储;
其中,在时间轮定时器触发所述离线通知任务集合,并经消息中间件进行广播前,若某设备上报数据,则从所述离线通知任务集合中删除该设备对应的任务。
8.根据权利要求7所述的进行设备监控的方法,其特征在于,所述时间轮定时器触发所述离线通知任务集合,并经缓存中间件进行存储,包括:在离线通知任务集合中添加或删除某一设备ID的任务时,在缓存中间件的离线通知任务集合中同步进行添加或删除。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-8任一所述方法的步骤。
10.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1-8任一所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210038631.7A CN114490759A (zh) | 2022-01-13 | 2022-01-13 | 一种设备影子的管理方法及应用其进行设备监控的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210038631.7A CN114490759A (zh) | 2022-01-13 | 2022-01-13 | 一种设备影子的管理方法及应用其进行设备监控的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490759A true CN114490759A (zh) | 2022-05-13 |
Family
ID=81511995
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210038631.7A Pending CN114490759A (zh) | 2022-01-13 | 2022-01-13 | 一种设备影子的管理方法及应用其进行设备监控的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114490759A (zh) |
-
2022
- 2022-01-13 CN CN202210038631.7A patent/CN114490759A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112260876B (zh) | 动态网关路由配置方法、平台、计算机设备及存储介质 | |
CN106059825A (zh) | 一种分布式系统及配置方法 | |
RU2681409C1 (ru) | Система и способ синхронизации памяти в многоядерной системе | |
CN113094430B (zh) | 一种数据处理方法、装置、设备以及存储介质 | |
CN114442912B (zh) | 用于分布式数据储存的方法和设备 | |
CN110968603A (zh) | 一种数据访问方法及装置 | |
US10599629B2 (en) | Reduced locking in a distributed data store | |
EP2416526B1 (en) | Task switching method, server node and cluster system | |
CN115587118A (zh) | 任务数据的维表关联处理方法及装置、电子设备 | |
CN114238518A (zh) | 数据处理方法、装置、设备及存储介质 | |
CN107203437B (zh) | 防止内存数据丢失的方法、装置和系统 | |
CN111865687B (zh) | 一种业务数据更新方法及设备 | |
CN117435569A (zh) | 缓存系统动态扩容方法、装置、设备、介质和程序产品 | |
CN114490759A (zh) | 一种设备影子的管理方法及应用其进行设备监控的方法 | |
CN112052104A (zh) | 基于多机房实现的消息队列的管理方法及电子设备 | |
CN112181724A (zh) | 大数据容灾方法、装置和电子设备 | |
CN108475211B (zh) | 无状态系统和用于获得资源的系统 | |
CN114116676A (zh) | 数据迁移方法、装置、电子设备及计算机可读存储介质 | |
CN113608896B (zh) | 一种动态切换数据流的方法、系统、介质及终端 | |
CN116186022A (zh) | 表单处理方法、装置、分布式表单系统和计算机存储介质 | |
CN114547422A (zh) | 一种防止重复点击页面元素的方法和装置 | |
CN113687935A (zh) | 一种基于超融合设计的云原生存储调度方式 | |
CN112231292A (zh) | 文件处理方法、装置、存储介质及计算机设备 | |
WO2024045016A1 (zh) | 一种节点的配置方法、装置以及系统 | |
CN117473019B (zh) | 一种数据同步方法、系统、计算机设备以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |