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

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

Info

Publication number
CN104536785A
CN104536785A CN201410816253.6A CN201410816253A CN104536785A CN 104536785 A CN104536785 A CN 104536785A CN 201410816253 A CN201410816253 A CN 201410816253A CN 104536785 A CN104536785 A CN 104536785A
Authority
CN
China
Prior art keywords
node
configuration file
real
data
time system
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.)
Granted
Application number
CN201410816253.6A
Other languages
English (en)
Other versions
CN104536785B (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 CN201410816253.6A priority Critical patent/CN104536785B/zh
Publication of CN104536785A publication Critical patent/CN104536785A/zh
Application granted granted Critical
Publication of CN104536785B publication Critical patent/CN104536785B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明公开了一种实时系统更新方法及装置,该实时系统包括第一节点,第一节点包含多个实例,该实时系统更新方法包括:检测第一节点的守护进程的配置文件是否发生更新,其中,第一节点的守护进程用于启动第一节点的实例,第一节点的守护进程的配置文件中配置有第一节点的多个实例中需要启动的实例;在检测到配置文件发生更新时,加载更新后的配置文件;以及根据更新后的配置文件启动第一节点的实例。通过本发明,解决了实时系统更新时存在数据丢失的问题。

Description

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

Claims (10)

1.一种实时系统更新方法,其特征在于,所述实时系统包括第一节点,所述第一节点包含多个实例,所述方法包括:
检测所述第一节点的守护进程的配置文件是否发生更新,其中,所述第一节点的守护进程用于启动所述第一节点的实例,所述第一节点的守护进程的配置文件中配置有所述第一节点的多个实例中需要启动的实例;
在检测到所述配置文件发生更新时,加载更新后的配置文件;以及
根据所述更新后的配置文件启动所述第一节点的实例。
2.根据权利要求1所述的实时系统更新方法,其特征在于,检测所述第一节点的守护进程的配置文件是否发生更新包括:
检测所述第一节点的守护进程的配置文件是否发生修改;
如果检测出所述第一节点的守护进程的配置文件发生修改,则确定所述第一节点的守护进程的配置文件发生更新;以及
如果检测出所述第一节点的守护进程的配置文件未发生修改,则确定所述第一节点的守护进程的配置文件未发生更新。
3.根据权利要求1所述的实时系统更新方法,其特征在于,所述实时系统还包括第二节点,所述第二节点用于存储所述实时系统中的实例相关的数据,在检测到所述配置文件发生更新时,加载更新后的配置文件之后,所述方法包括:
从所述更新后的配置文件中获取新增加的实例和删除的实例;
在所述第二节点中存储与所述新增加的实例相关的数据;以及
从所述第二节点中删除与所述删除的实例相关的数据。
4.根据权利要求3所述的实时系统更新方法,其特征在于,从所述更新后的配置文件中获取新增加的实例和删除的实例包括:
获取更新前的配置文件中的实例集合,得到第一实例集合;
获取所述更新后的配置文件中的实例集合,得到第二实例集合;以及
根据所述第一实例集合和所述第二实例集合得到所述新增加的实例和所述删除的实例。
5.根据权利要求3所述的实时系统更新方法,其特征在于,在所述第二节点中存储与所述新增加的实例相关的数据包括:
调用所述第二节点的第一预设操作,其中,所述第一预设操作用于存储数据至所述第二节点中;以及
通过执行所述第一预设操作在预设字典中存储所述新增加的实例相关的数据,其中,所述预设字典用于存储所述实时系统的实例相关的数据,所述预设字典包含标识列和属性值列,所述标识列用于存储所述实例的编号,所述属性值列用于存储所述实例相关的数据。
6.根据权利要求5所述的实时系统更新方法,其特征在于,在通过执行所述第一预设操作在预设字典中存储所述新增加的实例相关的数据之后,所述方法还包括:
为所述新增加的实例中的每一个实例创建对应的存储文件;以及
将所述新增加的实例相关的数据存储至对应的存储文件中。
7.根据权利要求3所述的实时系统更新方法,其特征在于,从所述第二节点中删除与所述删除的实例相关的数据包括:
调用所述第二节点的第二预设操作,其中,所述第二预设操作用于从所述第二节点中删除预先存储的数据;以及
通过执行所述第二预设操作从所述第二节点中删除与所述删除的实例相关的数据。
8.一种实时系统更新装置,其特征在于,所述实时系统包括第一节点,所述第一节点包含多个实例,所述装置包括:
检测单元,用于检测所述第一节点的守护进程的配置文件是否发生更新,其中,所述第一节点的守护进程用于启动所述第一节点的实例,所述第一节点的守护进程的配置文件中配置有所述第一节点的多个实例中需要启动的实例;
加载单元,用于在检测到所述配置文件发生更新时,加载更新后的配置文件;以及
启动单元,用于根据所述更新后的配置文件启动所述第一节点的实例。
9.根据权利要求8所述的实时系统更新装置,其特征在于,所述检测单元包括:
检测模块,用于检测所述第一节点的守护进程的配置文件是否发生修改;以及
确定模块,用于在检测出所述第一节点的守护进程的配置文件发生修改时,确定所述第一节点的守护进程的配置文件发生更新,在检测出所述第一节点的守护进程的配置文件未发生修改时,确定所述第一节点的守护进程的配置文件未发生更新。
10.根据权利要求8所述的实时系统更新装置,其特征在于,所述实时系统还包括第二节点,所述第二节点用于存储所述实时系统中的实例相关的数据,所述装置包括:
获取单元,用于从所述更新后的配置文件中获取新增加的实例和删除的实例;
存储单元,用于在所述第二节点中存储与所述新增加的实例相关的数据;以及
删除单元,用于从所述第二节点中删除与所述删除的实例相关的数据。
CN201410816253.6A 2014-12-23 2014-12-23 实时系统更新方法及装置 Active CN104536785B (zh)

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
CN104536785A true CN104536785A (zh) 2015-04-22
CN104536785B CN104536785B (zh) 2018-04-06

Family

ID=52852317

Family Applications (1)

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

Country Status (1)

Country Link
CN (1) CN104536785B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815001A (zh) * 2015-11-30 2017-06-09 北京国双科技有限公司 配置文件信息的检测方法及装置
CN107102922A (zh) * 2017-04-01 2017-08-29 北京三快在线科技有限公司 内存检测方法、装置及电子设备
CN107402800A (zh) * 2016-03-18 2017-11-28 阿里巴巴集团控股有限公司 一种更新容器守护进程的方法和设备
CN109976822A (zh) * 2017-12-25 2019-07-05 中国电信股份有限公司 分布式应用的配置方法、装置以及分布式系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515296A (zh) * 2009-03-06 2009-08-26 成都市华为赛门铁克科技有限公司 数据更新方法和装置
CN102916974A (zh) * 2012-11-07 2013-02-06 曙光信息产业股份有限公司 集群配置更新方法
CN103430178A (zh) * 2013-01-30 2013-12-04 华为技术有限公司 数据更新方法及装置和产品
CN103530420A (zh) * 2013-10-30 2014-01-22 北京奇虎科技有限公司 数据文件的动态更新方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101515296A (zh) * 2009-03-06 2009-08-26 成都市华为赛门铁克科技有限公司 数据更新方法和装置
CN102916974A (zh) * 2012-11-07 2013-02-06 曙光信息产业股份有限公司 集群配置更新方法
CN103430178A (zh) * 2013-01-30 2013-12-04 华为技术有限公司 数据更新方法及装置和产品
CN103530420A (zh) * 2013-10-30 2014-01-22 北京奇虎科技有限公司 数据文件的动态更新方法及装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106815001A (zh) * 2015-11-30 2017-06-09 北京国双科技有限公司 配置文件信息的检测方法及装置
CN107402800A (zh) * 2016-03-18 2017-11-28 阿里巴巴集团控股有限公司 一种更新容器守护进程的方法和设备
CN107402800B (zh) * 2016-03-18 2020-11-13 阿里巴巴集团控股有限公司 一种更新容器守护进程的方法和设备
CN107102922A (zh) * 2017-04-01 2017-08-29 北京三快在线科技有限公司 内存检测方法、装置及电子设备
CN109976822A (zh) * 2017-12-25 2019-07-05 中国电信股份有限公司 分布式应用的配置方法、装置以及分布式系统

Also Published As

Publication number Publication date
CN104536785B (zh) 2018-04-06

Similar Documents

Publication Publication Date Title
US10467245B2 (en) System and methods for mapping and searching objects in multidimensional space
CN108427684B (zh) 数据查询方法、装置及计算设备
CN106982236A (zh) 一种信息处理方法、装置和系统
CN112800287B (zh) 基于图数据库的全文索引方法和系统
CN106951179B (zh) 一种数据迁移方法及装置
CN109831507B (zh) 物联网系统、负载均衡方法和存储介质
CN103500191A (zh) 一种流表配置、查询、表项删除方法及装置
CN112015820A (zh) 分布式图数据库实现的方法、系统、电子装置和存储介质
CN104536785A (zh) 实时系统更新方法及装置
CN111586090A (zh) 工业数据采集的方法、系统、计算机设备和可读存储介质
CN111930770A (zh) 数据查询方法、装置及电子设备
CN106126583A (zh) 一种分布式图数据库的集群强一致性处理方法及系统
CN112100152A (zh) 业务数据处理方法、系统、服务器和可读存储介质
EP3422186B1 (en) Method, device and system for preventing memory data loss
CN104536784B (zh) 实时系统更新方法及装置
CN113127526A (zh) 一种基于Kubernetes的分布式数据存储和检索系统
CN104580428A (zh) 一种数据路由方法、数据管理装置和分布式存储系统
CN114398397A (zh) 数据处理方法、装置、存储介质以及系统
CN101963978A (zh) 一种分布式数据库的管理方法、装置及系统
CN104598652B (zh) 一种数据库查询方法及装置
CN107180034A (zh) MySQL数据库的集群系统
CN111159131A (zh) 性能优化方法、装置、设备及计算机可读存储介质
CN117389830A (zh) 集群日志采集方法、装置、计算机设备及存储介质
CN115333993B (zh) 容器环境下自定义容器组路由的方法、设备及存储介质
CN110955460A (zh) 一种服务进程启动方法、装置、电子设备和存储介质

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
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: 20180406

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

Pledgor: Beijing Guoshuang Technology Co.,Ltd.

Registration number: 2019990000503

CP02 Change in the address of a patent holder
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 Guoshuang Technology Co.,Ltd.

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

Patentee before: Beijing Guoshuang Technology Co.,Ltd.