CN104536784B - 实时系统更新方法及装置 - Google Patents

实时系统更新方法及装置 Download PDF

Info

Publication number
CN104536784B
CN104536784B CN201410814503.2A CN201410814503A CN104536784B CN 104536784 B CN104536784 B CN 104536784B CN 201410814503 A CN201410814503 A CN 201410814503A CN 104536784 B CN104536784 B CN 104536784B
Authority
CN
China
Prior art keywords
node
real
configuration file
time system
numbering
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.)
Active
Application number
CN201410814503.2A
Other languages
English (en)
Other versions
CN104536784A (zh
Inventor
马燕龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410814503.2A priority Critical patent/CN104536784B/zh
Publication of CN104536784A publication Critical patent/CN104536784A/zh
Application granted granted Critical
Publication of CN104536784B publication Critical patent/CN104536784B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种实时系统更新方法及装置,该实时系统包括第一节点和第二节点,第一节点用于向第二节点发送数据,第一节点和第二节点均包含多个实例,该实时系统更新方法包括:检测第一节点的配置文件是否发生更新,其中,第一节点的配置文件中配置有第一节点的实例发送数据的目标地址,目标地址为第二节点的实例的地址;在检测到配置文件发生更新时,加载更新后的配置文件;以及第一节点根据更新后的配置文件向第二节点的实例发送数据。通过本发明,解决了相关技术中实时系统更新时存在数据丢失的问题,进一步达到了减少实时系统更新时数据丢失的效果。

Description

实时系统更新方法及装置
技术领域
本发明涉及数据处理领域,具体而言,涉及一种实时系统更新方法及装置。
背景技术
实时系统用于数据的实时处理,满足用户实时查看数据的需求。如图1所示的实时系统的架构的逻辑示意图中包含了多个不同功能的节点,其中,请求转发节点用于将请求转发到计算节点,计算节点用于将请求进行解析,并将解析得到的数据进行聚合,中心节点用于保存聚合后的数据,查询节点用于从中心节点查询保存后的数据,其中,每个节点包含多个实例,例如,实例1、实例2和实例3,实例可以是节点的进程。上述实施系统中的每个实例发送数据的目标地址都是在配置文件中配置的,比如请求转发节点实例需要配置所有计算节点实例的地址列表,计算节点实例需要配置所有中心节点实例的地址列表,在每个节点启动的时候读取配置文件中配置的目标地址列表,数据被发送到每个目标地址对应的实例中。一旦实例启动之后,再修改配置文件将不起作用,例如,在配置文件中新添加一个目标地址,此时数据并不会发送给这个新加的目标地址。此外,上述实施系统的每个节点都有对应的守护进程,该守护进程一方面用于在配置文件中配置需要启动的实例,在守护进程启动后根据配置文件中的配置启动实例;另一方面该守护进程用于监控正在运行的实例,当实例停止运行时重新启动实例。
上述实时系统主要存在如下两个问题,一是在每次进行系统升级时,必须停掉整个实时系统,升级完毕后,再重新启动实时系统。例如,对计算节点进行升级,此时如果仅停掉实时系统中的计算节点进行升级,将会导致向计算节点发送数据失败,从而使得向计算节点发送的数据丢失。因此,在实时系统升级期间,必须停掉整个实时系统,在升级期间的数据将全部丢失,做不到无缝更新。二是线上环境运行时,如果发现某个节点性能瓶颈,需要在配置文件中添加新实例,此时同样需要停掉整个系统后再重新启动实时系统,这样新实例才会起作用,这个过程同样存在数据丢失的问题。
针对相关技术中实时系统更新时存在数据丢失的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种实时系统更新方法及装置,以解决相关技术中实时系统更新时存在数据丢失的问题。
为了实现上述目的,根据本发明的一个方面,提供了一种实时系统更新方法。
实时系统包括第一节点和第二节点,第一节点用于向第二节点发送数据,第一节点和第二节点均包含多个实例,根据本发明的实时系统更新方法包括:检测第一节点的配置文件是否发生更新,其中,第一节点的配置文件中配置有第一节点的实例发送数据的目标地址,目标地址为第二节点的实例的地址;在检测到配置文件发生更新时,加载更新后的配置文件;以及第一节点根据更新后的配置文件向第二节点的实例发送数据。
进一步地,检测第一节点的配置文件是否发生更新包括:检测第一节点的配置文件是否发生修改;如果检测出第一节点的配置文件发生修改,则确定第一节点的配置文件发生更新;以及如果检测出第一节点的配置文件未发生修改,则确定第一节点的配置文件未发生更新。
进一步地,实时系统还包括第三节点,第三节点用于存储实时系统中的实例相关的数据,该方法还包括:通过第一节点的第一实例调用第三节点的第一预设操作,其中,第一实例是指第一节点的多个实例中处于运行状态的实例,第一预设操作用于存储数据至第三节点中;以及通过执行第一预设操作将第一实例相关的数据存储至第三节点中。
进一步地,通过执行第一预设操作存储第一实例相关的数据至第三节点中包括:判断第一实例的编号是否存在于预设字典中,其中,预设字典用于存储实时系统的实例相关的数据,预设字典包含标识列和属性值列,标识列用于存储实例的编号,属性值列用于存储实例相关的数据;如果判断出第一实例的编号存在于预设字典中,将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中;以及如果判断出第一实例的编号不存在于预设字典中,在预设字典中添加第一实例的编号,并将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中。
进一步地,在通过第一节点的第一实例调用第三节点的第一预设操作之后,该方法还包括:判断第一实例是否是第一次调用第一预设操作;如果判断出第一实例不是第一次调用第一预设操作;查找第一实例对应的存储文件;将第一实例相关的数据存储至对应的存储文件中;以及如果判断出第一实例是第一次调用第一预设操作,为第一实例创建对应的存储文件,并将第一实例相关的数据存储至对应的存储文件中。
为了实现上述目的,根据本发明的另一方面,提供了一种实时系统更新装置。
实时系统包括第一节点和第二节点,第一节点用于向第二节点发送数据,第一节点和第二节点均包含多个实例,根据本发明的实时系统更新装置包括:检测单元,用于检测第一节点的配置文件是否发生更新,其中,第一节点的配置文件中配置有第一节点的实例发送数据的目标地址,目标地址为第二节点的实例的地址;加载单元,用于在检测到配置文件发生更新时,加载更新后的配置文件;以及发送单元,用于根据更新后的配置文件向第二节点的实例发送数据。
进一步地,检测单元包括:检测模块,用于检测第一节点的配置文件是否发生修改;以及确定模块,用于在检测出第一节点的配置文件发生修改时,确定第一节点的配置文件发生更新,在检测出第一节点的配置文件未发生修改时,确定第一节点的配置文件未发生更新。
进一步地,实时系统还包括第三节点,第三节点用于存储实时系统中的实例相关的数据,该装置还包括:调用单元,用于通过第一节点的第一实例调用第三节点的第一预设操作,其中,第一实例是指第一节点的多个实例中处于运行状态的实例,第一预设操作用于存储数据至第三节点中;以及第一存储单元,用于通过执行第一预设操作存储第一实例相关的数据至第三节点中。
进一步地,第一存储单元包括:第一判断模块,用于判断第一实例的编号是否存在于预设字典中,其中,预设字典用于存储实时系统的实例相关的数据,预设字典包含标识列和属性值列,标识列用于存储实例的编号,属性值列用于存储实例相关的数据;第一存储模块,用于在判断出第一实例的编号存在于预设字典中,将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中;以及添加模块,用于在判断出第一实例的编号不存在于预设字典中时,在预设字典中添加第一实例的编号,并将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中。
进一步地,该装置还包括:判断单元,用于判断第一实例是否是第一次调用第一预设操作;查找单元,用于在判断出第一实例不是第一次调用第一预设操作时,查找第一实例对应的存储文件;第二存储单元,用于将第一实例相关的数据存储至对应的存储文件中;以及创建单元,用于在判断出第一实例是第一次调用第一预设操作时,为第一实例创建对应的存储文件,并将第一实例相关的数据存储至对应的存储文件中。
通过本发明,采用实时检测第一节点的配置文件是否发生更新,在检测到第一节点的配置文件发生更新后加载更新后的配置文件,并根据更新后的配置文件中的目标地址发送数据,解决了相关技术中实时系统更新时存在数据丢失的问题,进而达到了减少实时系统更新时数据丢失的效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据相关技术的实时系统的示意图;
图2是根据本发明实施例的实时系统更新方法的流程图;
图3是根据本发明实施例的实时系统的示意图;以及
图4是根据本发明实施例的实时系统更新装置的示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例,提供了一种实时系统更新方法,图2是根据本发明实施例的实时系统更新方法的流程图。
实时系统包括第一节点和第二节点,第一节点用于向第二节点发送数据,第一节点和第二节点均包含多个实例,如图2所示,该方法包括如下的步骤S202至步骤S206:
步骤S202:检测第一节点的配置文件是否发生更新,其中,第一节点的配置文件中配置有第一节点的实例发送数据的目标地址,目标地址为第二节点的实例的地址。
第一节点可以是实时系统中任意发送数据的节点,例如,请求转发节点、计算节点等。第一节点包含多个实例,其中,实例可以是第一节点的进程。第一节点的多个实例可以全部同时运行,也可以部分同时运行,用户可以根据实时系统的数据处理量来设定。第一节点还包含守护进程,第一节点的守护进程可以根据该守护进程的配置文件启动第一节点的实例,还可以监控正在运行的实例,当实例停止运行时重新启动实例。第二节点用于接收第一节点发送的数据,例如,如图1所示的实时系统,如果第一节点为请求转发节点,则第二节点为计算节点,如果第一节点为计算节点时,则第二节点为中心节点。第二节点同样包含多个实例和守护进程,并通过守护进程启动第二节点的实例。当第二节点的守护进程检测到第二节点的守护进程的配置文件更新后,第二节点的守护会加载最新的配置文件并根据最新的配置文件启动第二节点的实例。第一节点的配置文件中配置有第一节点的实例发送数据的目标地址,目标地址为第二节点的实例的地址。通常,整个实时系统初始化时,会首先启动第二节点的实例,并根据第二节点的多个实例中处于运行状态的实例配置第一节点的配置文件,即在第一节点的配置文件中配置第二节点的多个实例中处于运行状态的实例的地址,从而可以保证第一节点将数据发送给第二节点中处于运行状态的实例。因此,为了保证数据不丢失,在修改第二节点中运行的实例之前,需要先修改第一节点的配置文件。
可选地,检测第一节点的配置文件是否发生更新包括:检测第一节点的配置文件是否发生修改;如果检测出第一节点的配置文件发生修改,则确定第一节点的配置文件发生更新;以及如果检测出第一节点的配置文件未发生修改,则确定第一节点的配置文件未发生更新。
第一节点的配置文件的修改通常包含目标地址的修改,例如,在配置文件中添加新的目标地址,或在配置文件中剔除掉部分的目标地址。如果检测到第一节点的配置文件发生上述修改时,说明第一节点的配置文件发生了更新,如果没检测到第一节点的配置文件发生修改,则说明第一节点的配置文件未发生更新。
步骤S204:在检测到配置文件发生更新时,加载更新后的配置文件。
步骤S206:第一节点根据更新后的配置文件向第二节点的实例发送数据。
第一节点在重新加载更新后的配置文件后,根据更新后的配置文件中的目标地址发送数据。
本发明实施例通过实时检测到第一节点的配置文件,在检测到第一节点的配置文件更新后,加载更新后的配置文件并根据更新后的配置文件向目标地址发送数据,保证了整个实时系统一直处于运行状态,相比于现有技术中,在第一节点的配置文件发生更新后,必须重新启动整个实时系统才能加载更新后的配置文件,避免了因配置文件更新导致系统停止运行而造成的数据丢失,解决了相关技术中实时系统更新时存在数据丢失的问题。
优选地,实时系统还包括第三节点,第三节点用于存储实时系统中的实例相关的数据,该方法还包括:通过第一节点的第一实例调用第三节点的第一预设操作,其中,第一实例是指第一节点的多个实例中处于运行状态的实例,第一预设操作用于存储数据至第三节点中;以及通过执行第一预设操作将第一实例相关的数据存储至第三节点中。
第三节点用于存储实时系统中的实例的相关数据,实例相关的数据包括实例处理的数据和实例运行的状态数据。用户可以根据需要设置实时系统中需要存储数据的实例,如图3所示,实时系统包括请求转发节点、计算节点、中心节点、查询节点和存储节点,存储节点用于存储计算节点的实例相关的数据和中心节点的实例的相关数据。实时系统中所有需要保存数据的实例都配备第三节点实例,保存数据时调用第三节点中的数据存储操作将数据保存到第三节点中。由于第三节点仅实现非常简单的数据存取逻辑,几乎不会变化,因此,每次发布新的实时系统时,第三节点都不需要重新发布。通过第三节点实时保存实时系统中的实例相关的数据,保证实时系统的实例停止运行后实例相关的数据不会丢失。
具体地,第三节点也包含多个实例和守护进程,通过第三节点的守护进程启动第三节点的实例。第三节点的实例启动时使用第三节点的实例的编号作为名称创建一个目录,该目录下包含多个存储文件,每个存储文件用于存储一个实例相关的数,可选的,可以用需要存储数据的实例的编号命名存储文件,在该实例第一次存储数据至第三节点时创建存储文件,并将实例相关的数据存储至对应的存储文件中。第三节点预先定义了一个字典,该预设字典采用键值(KeyValue)的存储方式,即包含标识和属性值两列,在本发明实施例中,标识列用于存储实例的编号,属性值列用于存储实例相关的数据。此外,该第三节点还预设了如下四种数据操作:
数据存储操作,例如,Put函数,参数为实例的编号、数据集合,无返回值。该操作首先检查实例的编号在该预设字典中是否存在,如果该实例的编号不存在于预设字典中时,在预设字典中新加一项,Key为实例的编号,Value为空集合;如果该实例的编号存在于预设字典中时,根据该实例的编号,获取这个实例的已有数据集合,将新数据集合添加到已有数据集合中。在完成向预设字典中存储实例的数据后,继续将实例的数据存储至这个实例对应的存储文件中,如果该实例不存在对应的存储文件时,先创建该实例对应的存储文件。
数据读取操作,例如,Get函数,参数为实例的编号,返回该实例在第三节点中存储的数据。该操作用于根据实例的编号从预设字典中查找该实例对应的数据。
删除实例操作,例如,DeleteInstance函数,参数为实例的编号、无返回值。该操作用于从预设字典中移除该实例的数据,并将对应的存储文件删除。
删除数据操作,例如,DeleteData函数,参数为实例的编号、要删除的数据集合,无返回值。该操作用于从预设字典中查找该实例的数据集合,将要删除的数据集合从预设字典中删除。
实时系统中需要存储数据的实例在运行时可以自动的调用第三节点的数据存储操作将数据存储于第三节点中。具体地,第一节点的第一实例运行过程中,调用第三节点的第一预设操作,并通过执行第一预设操作实现将第一实例相关的数据存储于第三节点中,其中,第一实例可以是第一节点的一个实例,也可以是第一节点的多个实例,第一预设操作用于存储实例相关的数据至第三节点中,可以是上述数据存储操作。通过实时的将第一实例相关的数据存储于第三节点中,可以避免第一实例停止运行时第一实例相关的数据丢失。例如,一个用于实时处理网站的访问数据的实时系统,现有技术中仅能够保存该网站的访问次数在时间维度的数据,例如,仅保存在各个时刻该网站的访问次数,而无法提供其他更多维度的数据,例如,不同浏览器访问该网站的次数,对于其他维度的数据,在实时系统的实例停止运行后就会丢失,本发明实施例可以将实时系统的实例相关的数据存储于第三节点中,从而可以避免实例停止运行后产生实例相关的数据丢失的问题。
优选地,为了提高将实例相关的数据存储至第三节点的效率,通过执行第一预设操作存储第一实例相关的数据至第三节点中包括:判断第一实例的编号是否存在于预设字典中,其中,预设字典用于存储实时系统的实例相关的数据,预设字典包含标识列和属性值列,标识列用于存储实例的编号,属性值列用于存储实例相关的数据;如果判断出第一实例的编号存在于预设字典中,将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中;以及如果判断出第一实例的编号不存在于预设字典中,在预设字典中添加第一实例的编号,并将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中。
预设字典如上所述,采用键值(KeyValue)的存储方式,标识列和属性值列,标识列用于存储实例的编号,用于唯一的识别实例,属性值列用于存储实例相关的数据。具体地,在将第一实例相关的数据存储于预设字典中储时,首先会判断判断第一实例的编号是否存在于预设字典中,如果第一实例的编号存在于预设字典中,说明第一实例之前存储过数据至预设字典中,此时可以直接将第一实例相关的数据存储于第一实例的编号对应的数据集合中,该数据集合即为第一实例之前存储数据的集合,该数据集合位于字典的属性值列中。如果第一实例的编号不存在于预设字典中,说明第一实例之前没有存储过数据至预设字典中,此时,可以在预设字典中添加第一实例的编号,并将第一实例相关的数据存储于第一实例的编号对应的属性值列中。由上可知,采用预设字典的方式存储数据,存储过程快捷方便。
优选地,在通过第一节点的第一实例调用第三节点的第一预设操作之后,该方法还包括:判断第一实例是否是第一次调用第一预设操作;如果判断出第一实例不是第一次调用第一预设操作;查找第一实例对应的存储文件;将第一实例相关的数据存储至对应的存储文件中;以及如果判断出第一实例是第一次调用第一预设操作,为第一实例创建对应的存储文件,并将第一实例相关的数据存储至对应的存储文件中。
为了进一步避免由于第三节点的实例停止运行导致第三节点存储的数据丢失,将第一实例相关的数据存储于存储文件中,该存储文件可以位于磁盘文件中。实时系统中的实例在第一次存储数据至第三节点时会创建存储文件,为了方便查找,可以将存储文件命名为需要存储数据的实例的编号。具体地,当第一实例调用第一预设操作时,判断第一实例是否是第一次调用第一预设操作,即判断第一实例是否是第一次存储数据至第三节点中,如果判断出第一实例不是第一次调用第一预设操作,说明第一实例已经创建过对应的存储文件,此时可以直接将第一实例相关的数据存储于对应的存储文件中,如果判断出第一实例是第一次调用第一预设操作,说明第一实例是第一次存储数据至第三节点中,此时为第一实例创建对应的存储文件,并将第一实例相关的数据存储至对应的存储文件中。在第三节点的实例每次启动时,根据该第三节点的实例的编号,检查是否包含对应的目录,如果包含的话,读取目录中的存储文件的内容到预设字典中,从而保证预设字典中的数据不丢失。
具体地,以图3所示的实时系统为例说明本发明实施例的实时系统更新方法。
实时系统更新包括两个方面,一是节点的实例的程序文件的更新,二是节点的性能瓶颈,需要在节点的守护进程的配置文件中添加新实例的更新。
对于第一种情况,实时系统按照中心节点、计算节点、请求转发节点、查询节点的顺序依次更新各个节点。如果某个节点不存在更新,则直接跳过。以下以中心节点为例进行说明:
步骤一:修改计算节点的配置文件,将多个中心节点实例从计算节点配置文件中删除,计算节点实例监听到配置文件变化后,加载最新配置文件后,就不再向删除的中心节点的实例发送数据。
步骤二:修改中心节点的守护进程的配置文件,将不在接收数据的实例的程序文件地址修改为最新地址,当守护进程监听到配置文件变化后,重新加载更新后的配置文件。中心节点中不再接收数据的实例都使用最新程序启动,这些实例已经被更新,同时这些实例使用的还是相同的编号,因此通过存储节点实例,依然可以查到之前存储的数据,保证数据不会丢失,但是目前这些更新后的实例仍不会接收到任何数据。
步骤三:再次修改计算节点的配置文件,将中心节点中已经更新的实例重新添加到计算节点的配置文件中,而将中心节点中之前没有更新的实例从计算节点的配置文件中删除,此时计算节点实例监听到配置文件变化,加载最新配置文件后,将向中心节点中已经更新的实例发送数据,并且不再向中心节点中没有更新的实例发送数据。
步骤四:再次修改中心节点的守护进程的配置文件,将没有更新的实例的程序文件地址修改为最新地址,当守护进程监听到配置文件变化后,重新加载最新的配置文件,实现之前未更新的实例的更新,并且由于实例的编号不变,从而实例相关的数据不会丢失。
通过上述四个步骤即可实现中心节点全部实例的更新。对于请求转发节点和查询节点来说,这些节点的实例不会作为发送数据的目标实例,因此,可以直接更新。
对于第二种情况,即实时系统的节点遇到性能瓶颈,需要添加实例,此时可以按照如下方式添加新实例:
首先修改该节点对应的守护进程的配置文件,添加新实例,当守护进程监听到配置文件变化后,加载最新配置文件,并启动新增加的实例。其次,如果更新的实例是发送数据的目标实例的话,修改发送数据的节点的配置文件,添加上述新增加的实例作为目标实例,当发送数据的节点监听到配置文件变化后,加载更新后的配置文件,并向这些新增加的实例发送数据;如果新增加的实例不是发送数据的目标实例,则无需执行第二个步骤。
本发明实施例在每次更新实时系统时,在保证存储节点不进行升级时,实时系统所有其他节点的更新都不会影响实时系统的数据处理,而存储节点只提供了非常简单的数据存取功能,一次发布后就不需要再次发布,从而可以保证实时系统更新过程中不会出现数据缺失,真正做到实时系统的无缝发布。此外,实时系统中所有实例都监听配置文件变化话,一旦配置文件发送变化,加载新的配置,这样修改配置后,数据被发送到新的实例。实时系统的所有守护进程监听守护进程的配置文件的变化,一旦配置文件发生变化,加载新的配置。从而,本发明实施例可以在实时系统运行时,根据线上运行状况,动态调整各个节点的实例,而不影响整个实时系统的数据处理。
从以上的描述中,可以看出,本发明实现了如下技术效果:
本发明实施例通过检测第一节点的配置文件是否发生更新,在检测到配置文件发生更新时,加载更新后的配置文件,以及第一节点根据更新后的配置文件向第二节点的实例发送数据。本发明实施例通过实时检测第一节点的配置文件,在检测到第一节点的配置文件更新后,加载更新后的配置文件并根据更新后的配置文件向目标地址发送数据,保证了整个实时系统一直处于运行状态,相比于现有技术中,在第一节点的配置文件发生更新后,必须重新启动整个实时系统才能加载更新后的配置文件,避免了因配置文件更新导致系统停止运行而造成的数据丢失,解决了相关技术中实时系统更新时存在数据丢失的问题。此外,通过将第一节点的实例相关的数据实时的存储至第二节点中,从而可以避免实例停止运行后导致该实例相关的数据丢失的问题。
需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
根据本发明实施例的另一方面,提供了一种实时系统更新装置,该实时系统更新装置可以用于执行本发明实施例的实时系统更新方法,本发明实施例的实时系统更新方法也可以通过本发明实施例的实时系统更新装置来执行。
该实时系统包括第一节点和第二节点,第一节点用于向第二节点发送数据,第一节点和第二节点均包含多个实例。图4是根据本发明实施例的实时系统更新装置的示意图,如图4所示,该实时系统更新装置包括:检测单元10,加载单元20和发送单元30。
检测单元10,用于检测第一节点的配置文件是否发生更新,其中,第一节点的配置文件中配置有第一节点的实例发送数据的目标地址,目标地址为第二节点的实例的地址。
第一节点可以是实时系统中任意发送数据的节点,例如,请求转发节点、计算节点等。第一节点包含多个实例,其中,实例可以是第一节点的进程。第一节点的多个实例可以全部同时运行,也可以部分同时运行,用户可以根据实时系统的数据处理量来设定。第一节点还包含守护进程,第一节点的守护进程可以根据该守护进程的配置文件启动第一节点的实例,还可以监控正在运行的实例,当实例停止运行时重新启动实例。
可选地,检测单元10包括:检测模块,用于检测第一节点的配置文件是否发生修改;以及确定模块,用于在检测出第一节点的配置文件发生修改时,确定第一节点的配置文件发生更新,在检测出第一节点的配置文件未发生修改时,确定第一节点的配置文件未发生更新。
加载单元20,用于在检测到配置文件发生更新时,加载更新后的配置文件。
发送单元30,用于根据更新后的配置文件向第二节点的实例发送数据。
第一节点在重新加载更新后的配置文件后,根据更新后的配置文件中的目标地址发送数据。
本发明实施例通过检测单元10检测第一节点的配置文件是否发生更新,加载单元20在检测到配置文件发生更新时,加载更新后的配置文件,发送单元30根据更新后的配置文件向第二节点的实例发送数据。本发明实施例通过实时检测到第一节点的配置文件,在检测到第一节点的配置文件更新后,加载更新后的配置文件并根据更新后的配置文件向目标地址发送数据,保证了整个实时系统一直处于运行状态,相比于现有技术中,在第一节点的配置文件发生更新后,必须重新启动整个实时系统才能加载更新后的配置文件,避免了因配置文件更新导致系统停止运行而造成的数据丢失,解决了相关技术中实时系统更新时存在数据丢失的问题。
优选地,实时系统还包括第三节点,第三节点用于存储实时系统中的实例相关的数据,该装置还包括:调用单元,用于通过第一节点的第一实例调用第三节点的第一预设操作,其中,第一实例是指第一节点的多个实例中处于运行状态的实例,第一预设操作用于存储数据至第三节点中;以及第一存储单元,用于通过执行第一预设操作存储第一实例相关的数据至第三节点中。
优选地,第一存储单元包括:第一判断模块,用于判断第一实例的编号是否存在于预设字典中,其中,预设字典用于存储实时系统的实例相关的数据,预设字典包含标识列和属性值列,标识列用于存储实例的编号,属性值列用于存储实例相关的数据;第一存储模块,用于在判断出第一实例的编号存在于预设字典中,将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中;以及添加模块,用于在判断出第一实例的编号不存在于预设字典中时,在预设字典中添加第一实例的编号,并将第一实例相关的数据存储于预设字典中第一实例的编号对应的属性值列中。
优选地,该装置还包括:判断单元,用于判断第一实例是否是第一次调用第一预设操作;查找单元,用于在判断出第一实例不是第一次调用第一预设操作时,查找第一实例对应的存储文件;第二存储单元,用于将第一实例相关的数据存储至对应的存储文件中;以及创建单元,用于在判断出第一实例是第一次调用第一预设操作时,为第一实例创建对应的存储文件,并将第一实例相关的数据存储至对应的存储文件中。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种实时系统更新方法,其特征在于,所述实时系统包括第一节点和第二节点,所述第一节点用于向所述第二节点发送数据,所述第一节点和所述第二节点均包含多个实例,所述方法包括:
检测所述第一节点的配置文件是否发生更新,其中,所述第一节点的配置文件中配置有所述第一节点的实例发送数据的目标地址,所述目标地址为所述第二节点的实例的地址;
在检测到所述配置文件发生更新时,加载更新后的配置文件;以及
所述第一节点根据所述更新后的配置文件向所述第二节点的实例发送数据;
其中,所述实时系统还包括第三节点,所述第三节点用于存储所述实时系统中的实例相关的数据,所述方法还包括:
通过所述第一节点的第一实例调用所述第三节点的第一预设操作,其中,所述第一实例是指所述第一节点的多个实例中处于运行状态的实例,所述第一预设操作用于存储数据至所述第三节点中;以及
通过执行所述第一预设操作将所述第一实例相关的数据存储至所述第三节点中。
2.根据权利要求1所述的实时系统更新方法,其特征在于,检测所述第一节点的配置文件是否发生更新包括:
检测所述第一节点的配置文件是否发生修改;
如果检测出所述第一节点的配置文件发生修改,则确定所述第一节点的配置文件发生更新;以及
如果检测出所述第一节点的配置文件未发生修改,则确定所述第一节点的配置文件未发生更新。
3.根据权利要求1所述的实时系统更新方法,其特征在于,通过执行所述第一预设操作存储所述第一实例相关的数据至所述第三节点中包括:
判断所述第一实例的编号是否存在于预设字典中,其中,所述预设字典用于存储所述实时系统的实例相关的数据,所述预设字典包含标识列和属性值列,所述标识列用于存储所述实例的编号,所述属性值列用于存储所述实例相关的数据;
如果判断出所述第一实例的编号存在于所述预设字典中,将所述第一实例相关的数据存储于所述预设字典中所述第一实例的编号对应的属性值列中;以及
如果判断出所述第一实例的编号不存在于所述预设字典中,在所述预设字典中添加所述第一实例的编号,并将所述第一实例相关的数据存储于所述预设字典中所述第一实例的编号对应的属性值列中。
4.根据权利要求1所述的实时系统更新方法,其特征在于,在通过所述第一节点的第一实例调用所述第三节点的第一预设操作之后,所述方法还包括:
判断所述第一实例是否是第一次调用所述第一预设操作;
如果判断出所述第一实例不是第一次调用所述第一预设操作;
查找所述第一实例对应的存储文件;
将所述第一实例相关的数据存储至对应的存储文件中;以及
如果判断出所述第一实例是第一次调用所述第一预设操作,为所述第一实例创建对应的存储文件,并将所述第一实例相关的数据存储至对应的存储文件中。
5.一种实时系统更新装置,其特征在于,所述实时系统包括第一节点和第二节点,所述第一节点用于向所述第二节点发送数据,所述第一节点和所述第二节点均包含多个实例,所述装置包括:
检测单元,用于检测所述第一节点的配置文件是否发生更新,其中,所述第一节点的配置文件中配置有所述第一节点的实例发送数据的目标地址,所述目标地址为所述第二节点的实例的地址;
加载单元,用于在检测到所述配置文件发生更新时,加载更新后的配置文件;
以及
发送单元,用于根据所述更新后的配置文件向所述第二节点的实例发送数据;
其中,所述实时系统还包括第三节点,所述第三节点用于存储所述实时系统中的实例相关的数据,所述装置还包括:
调用单元,用于通过所述第一节点的第一实例调用所述第三节点的第一预设操作,其中,所述第一实例是指所述第一节点的多个实例中处于运行状态的实例,所述第一预设操作用于存储数据至所述第三节点中;以及
第一存储单元,用于通过执行所述第一预设操作存储所述第一实例相关的数据至所述第三节点中。
6.根据权利要求5所述的实时系统更新装置,其特征在于,所述检测单元包括:
检测模块,用于检测所述第一节点的配置文件是否发生修改;以及
确定模块,用于在检测出所述第一节点的配置文件发生修改时,确定所述第一节点的配置文件发生更新,在检测出所述第一节点的配置文件未发生修改时,确定所述第一节点的配置文件未发生更新。
7.根据权利要求5所述的实时系统更新装置,其特征在于,所述第一存储单元包括:
第一判断模块,用于判断所述第一实例的编号是否存在于预设字典中,其中,所述预设字典用于存储所述实时系统的实例相关的数据,所述预设字典包含标识列和属性值列,所述标识列用于存储所述实例的编号,所述属性值列用于存储所述实例相关的数据;
第一存储模块,用于在判断出所述第一实例的编号存在于所述预设字典中,将所述第一实例相关的数据存储于所述预设字典中所述第一实例的编号对应的属性值列中;以及
添加模块,用于在判断出所述第一实例的编号不存在于所述预设字典中时,在所述预设字典中添加所述第一实例的编号,并将所述第一实例相关的数据存储于所述预设字典中所述第一实例的编号对应的属性值列中。
8.根据权利要求5所述的实时系统更新装置,其特征在于,所述装置还包括:
判断单元,用于判断所述第一实例是否是第一次调用所述第一预设操作;
查找单元,用于在判断出所述第一实例不是第一次调用所述第一预设操作时,查找所述第一实例对应的存储文件;
第二存储单元,用于将所述第一实例相关的数据存储至对应的存储文件中;
以及
创建单元,用于在判断出所述第一实例是第一次调用所述第一预设操作时,为所述第一实例创建对应的存储文件,并将所述第一实例相关的数据存储至对应的存储文件中。
CN201410814503.2A 2014-12-23 2014-12-23 实时系统更新方法及装置 Active CN104536784B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410814503.2A CN104536784B (zh) 2014-12-23 2014-12-23 实时系统更新方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410814503.2A CN104536784B (zh) 2014-12-23 2014-12-23 实时系统更新方法及装置

Publications (2)

Publication Number Publication Date
CN104536784A CN104536784A (zh) 2015-04-22
CN104536784B true CN104536784B (zh) 2018-02-23

Family

ID=52852316

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410814503.2A Active CN104536784B (zh) 2014-12-23 2014-12-23 实时系统更新方法及装置

Country Status (1)

Country Link
CN (1) CN104536784B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815001B (zh) * 2015-11-30 2020-03-03 北京国双科技有限公司 配置文件信息的检测方法及装置
CN106055348B (zh) * 2016-05-19 2019-07-12 青岛海信电器股份有限公司 一种通知系统属性更新的方法和装置
CN107451259A (zh) * 2017-07-31 2017-12-08 北京微影时代科技有限公司 一种数据字典动态更新方法及装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344894A (zh) * 2008-08-21 2009-01-14 峰峰集团邯郸鼎峰物流有限公司 一种应用系统间数据同步的方法和装置
CN102012807A (zh) * 2010-08-19 2011-04-13 上海酷吧信息技术有限公司 一种程序开发过程中的配置文件控制方法及装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101344894A (zh) * 2008-08-21 2009-01-14 峰峰集团邯郸鼎峰物流有限公司 一种应用系统间数据同步的方法和装置
CN102012807A (zh) * 2010-08-19 2011-04-13 上海酷吧信息技术有限公司 一种程序开发过程中的配置文件控制方法及装置

Also Published As

Publication number Publication date
CN104536784A (zh) 2015-04-22

Similar Documents

Publication Publication Date Title
US11514032B2 (en) Splitting a query into native query operations and post-processing operations
CN105512320B (zh) 一种用户排名获得方法、装置及服务器
CN106982236A (zh) 一种信息处理方法、装置和系统
CN102799628A (zh) 在key-value数据库中进行数据分区的方法和装置
CN103500191A (zh) 一种流表配置、查询、表项删除方法及装置
CN109240876A (zh) 实例监控方法、计算机可读存储介质和终端设备
CN104536785B (zh) 实时系统更新方法及装置
CN102831223A (zh) 一种分布式数据库的管理方法和系统
CN104536784B (zh) 实时系统更新方法及装置
CN110442773A (zh) 分布式系统中节点缓存方法、系统、装置及计算机介质
CN103701653B (zh) 一种接口热插拔配置数据的处理方法及网络配置服务器
CN111221840A (zh) 数据处理方法及装置、数据缓存方法、存储介质、系统
CN107491463B (zh) 数据查询的优化方法和系统
CN109783258A (zh) 一种消息处理方法、装置及服务器
CN105631019A (zh) 元数据扩展方法和元数据扩展装置
CN104750872A (zh) 一种业务对象的查询方法及装置
CN104598652B (zh) 一种数据库查询方法及装置
CN101963978B (zh) 一种分布式数据库的管理方法、装置及系统
CN106130751B (zh) 一种升级状态数据管理装置、系统和方法
CN103051478B (zh) 一种大容量电信网管系统及其设置和应用方法
CN114398397A (zh) 数据处理方法、装置、存储介质以及系统
CN104580428A (zh) 一种数据路由方法、数据管理装置和分布式存储系统
CN113626449A (zh) 数据存储、数据查询方法及相关设备
CN104702508A (zh) 表项动态更新方法及系统
JP7068210B2 (ja) データベース管理システム、端末装置及び方法

Legal Events

Date Code Title Description
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and device for updating real-time system

Effective date of registration: 20190531

Granted publication date: 20180223

Pledgee: Shenzhen Black Horse World Investment Consulting Co., Ltd.

Pledgor: Beijing Guoshuang Technology Co.,Ltd.

Registration number: 2019990000503

PE01 Entry into force of the registration of the contract for pledge of patent right
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.