一种服务器的组件热删除、热增加和热替换方法及装置与流程

文档序号:12463358阅读:296来源:国知局
一种服务器的组件热删除、热增加和热替换方法及装置与流程

本发明涉及服务器组件管理技术领域,具体涉及一种服务器的热删除、热增加和热替换方法及装置。



背景技术:

中央空调监控服务器用于对分布在各地的中央空调机组进行监控,实现了数据采集、存储、分析应用等功能。由于中央空调需求的不断加大,被监控的机组数量也随之快速增长。

对于每一种中央空调,服务器都会构建相应的组件以实现两者间的通讯,包括数据解析、数据显示和命令下发等。当前在服务器中进行组件更新时,通常需要:1)在服务器中完成解析数据的代码;2)暂停服务器,开始编译、调试;3)测试成功,重新启动服务器。然而暂停服务器会导致监控的中断,从而导致监控数据的不连续,为分析机组运行状态、判断机组故障发生原因带来困难。



技术实现要素:

本发明要解决的技术问题在于,当前在服务器中进行组件更新时需要暂停服务器,从而导致监控的中断和监控数据的不连续。

为此,本发明实施例提供了一种服务器的组件热删除方法,包括:将配置文件中的操作类型修改为删除,所述配置文件中还包括待删除组件的文件名;当配置文件状态检测线程检测到所述配置文件发生修改时,获取所述待删除组件的文件名以及所述操作类型,并将数据处理线程的组件更新标识位的值设置为第一值;所述数据处理线程根据所述待删除组件的文件名以及所述操作类型执行删除组件操作,并将所述数据处理线程的组件修改标志位的值设置为第二值,所述第二值不同于所述第一值。

可选的,在所述将配置文件中的操作类型修改为删除的步骤之前,所述待删除组件以动态链接库的形式存放在组件目录中,所述组件目录位于所述服务器的可执行目录下;所述配置文件位于所述服务器的可执行目录下。

可选的,在所述数据处理线程根据所述待删除组件的文件名以及所述操作类型执行删除组件操作的步骤之前,还包括:所述数据处理线程读取所述组件目录中的所有组件并加载到所述数据处理线程的组件集合中;所述数据处理线程根据所述待删除组件的文件名以及所述操作类型执行删除组件操作,并将所述数据处理线程的组件修改标志位的值设置为第二值包括:将所述待删除组件从所述组件集合中删除;将所述数据处理线程的组件修改标志位的值设置为第二值;从所述组件目录中删除所述待删除组件。

本发明实施例还提供了一种服务器的组件热增加方法,包括:将配置文件中的操作类型修改为增加,所述配置文件中还包括待增加组件的文件名;当配置文件状态检测线程检测到所述配置文件发生修改时,获取所述待增加组件的文件名以及所述操作类型,并将所述数据处理线程的组件更新标识位的值设置为第一值;所述数据处理线程根据所述待增加组件的文件名以及所述操作类型执行增加组件操作,并将数据处理线程的组件修改标志位的值设置为第二值,所述第二值不同于所述第一值。

可选的,在所述将配置文件中的操作类型修改为增加的步骤之前还包括:将所述待增加组件以动态链接库的形式存入组件目录,所述组件目录位于所述服务器的可执行目录下;所述配置文件位于所述服务器的可执行目录下。

可选的,所述数据处理线程根据所述待增加组件的文件名以及所述操作类型执行增加组件操作,并将所述数据处理线程的组件修改标志位的值设置为第二值包括:将所述待增加组件加载到所述数据处理线程的组件集合中;设置所述数据处理线程的组件修改标志位的值设置为第二值;将所述待增加组件存入所述服务器的数据库。

本发明实施例还提供了一种服务器的组件热替换方法,包括:根据上述任一种所述的服务器的组件热删除方法,将被替换组件从服务器中删除;根据上述任一种所述的服务器的组件热增加方法,将替换组件增加到所述服务器中。

本发明实施例还提供了一种服务器的组件热删除装置,包括:配置文件修改模块,用于将配置文件中的操作类型修改为删除,所述配置文件中还包括待删除组件的文件名;配置文件状态监测模块,用于通过配置文件状态检测线程监测所述配置文件的状态,以及当检测到所述配置文件发生修改时,获取所述待删除组件的文件名以及所述操作类型,并将数据处理线程的组件更新标识位的值设置为第一值;组件删除模块,用于通过所述数据处理线程执行删除组件操作,并将所述数据处理线程的组件修改标志位的值设置为第二值,所述第二值不同于所述第一值。

本发明实施例还提供了一种服务器的组件热增加装置,包括:配置文件修改模块,用于将配置文件中的操作类型修改为增加,所述配置文件中还包括待增加组件的文件名;配置文件状态监测模块,用于通过配置文件状态检测线程监测所述配置文件的状态,以及当检测到所述配置文件发生修改时,获取所述待增加组件的文件名以及所述操作类型,并将数据处理线程的组件更新标识位的值设置为第一值;组件增加模块,用于通过所述数据处理线程执行增加组件操作,并将所述数据处理线程的组件修改标志位的值设置为第二值,所述第二值不同于所述第一值。

本发明实施例还提供了一种服务器的组件热替换装置,包括:上述服务器的组件热删除装置,用于将被替换组件从服务器中删除;上述服务器的组件热增加装置,用于将替换组件增加到所述服务器中

本发明实施例的服务器的热删除、热增加和热替换方法及装置,只需设计开发人员修改配置文件,配置文件状态检测线程和数据处理线程就会自动完成更新过程,做到服务器不中断,保证了工作的连续性。

附图说明

通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:

图1是本发明实施例的一种服务器的组件热删除方法的流程图;

图2是本发明实施例的另一种服务器的组件热删除方法的流程图;

图3是本发明实施例的一种服务器的组件热增加方法的流程图;

图4是本发明实施例的另一种服务器的组件热增加方法的流程图;

图5是本发明实施例的一种服务器的组件热替换方法的流程图;

图6是本发明实施例的一种服务器的组件热删除装置的示意图;

图7是本发明实施例的一种服务器的组件热增加装置的示意图;

图8是本发明实施例的一种服务器的组件热替换装置的示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

图1是本发明一实施例提供的一种服务器的组件热删除方法的流程图,在一个具体的应用场景中,该服务器是中央空调监控服务器,用于监控分布在各处的中央空调机组,中央空调机组生产时会有一套完整的协议,不同类型的中央空调机组会有不同的协议,协议也可以进行更新,监控服务器根据协议构建组件,以实现与中央空调机组的通讯;如图1所示,该组件热删除方法包括:

S11.将配置文件中的操作类型修改为删除,该配置文件位于服务器的可执行目录(/bin)下,该配置文件中还包括待删除组件的文件名;例如,可以设置该配置文件的文件名为com_mgr.conf,其内容为:

name='libprot_0001.so'

operType=2

其中,第一行表示待修改组件的名称是“libprot_0001.so”,由其后缀”.so”可知其是动态链接库文件;第二行表示操作类型,这里“2”表示操作类型是删除。

S12.当配置文件状态检测线程(当服务器的数据存储主程序启动时,会同时启动配置文件状态检测线程和至少一个数据处理线程,配置文件状态检测线程是用于监控配置文件是否发生修改、以及在发生修改时获取需要修改的组件名称和操作类型,数据处理线程是用于加载、解析、存储组件的)检测到该配置文件发生修改时,获取该待删除组件的文件名以及该操作类型,并将数据处理线程的组件更新标识位的值设置为第一值,数据处理线程只有在组件更新标识位的值为第一值时,才会执行组件更新的操作;例如,该组件更新标识位的第一值可以是true。

S13.数据处理线程根据待删除组件的文件名以及操作类型执行删除组件操作,并将数据处理线程的组件修改标志位的值设置为不同于第一值的第二值,以标识配置文件的修改已被处理。例如,该组件更新标识位的第二值可以是false。

本发明实施例的热删除方法,只需设计开发人员修改服务器中的配置文件,在配置文件中写入待删除组件的文件名和将操作类型修改为删除,配置文件状态检测线程和数据处理线程就会根据这些信息自动完成组件热删除操作,不必中断服务器的正常工作,保证了服务器工作的连续性。

具体地,在步骤S12之前,服务器的组件目录中可存放有待删除组件,该待删除组件以动态链接库的形式存放,采用动态链接库可以独立于服务器原有代码,单独对组件进行编译和调试,降低耦合,其中,该组件目录位于服务器的可执行目录下,配置文件也位于该可执行目录下。

图2是本发明一实施例提供的另一种服务器的组件热删除方法的流程图,如图2所示,该方法包括:

S21.数据处理线程读取组件目录中的所有组件(包括待删除组件)并加载到其组件集合中。具体地,每一个数据处理线程都会有一个组件集合来包含所有的组件,用句柄来标识不同的组件。当服务器需要处理的数据量大时,该数据处理线程可以为多个。

S22.将配置文件中的操作类型修改为删除,该配置文件中还包括待删除组件的文件名。

S23.配置文件状态检测线程检测到配置文件发生修改时,读取配置文件中的待删除组件的文件名以及操作类型,将数据处理线程的组件更新标识位的值设置为第一值。

S24.数据处理线程将该待删除组件从其组件集合中删除。在具体操作中,可以不设置数据处理线程实时监控其组件更新标识位的状态,而是设置若干触发条件,例如,当服务器接收到外部数据时,才会触发该数据处理线程检测其组件更新标识位的状态,然后当检测到组件更新标识位的值为第一值时,才会执行将该待删除组件从其组件集合中删除的操作。在中央空调监控系统这个具体的应用场景中,各空调通过GPRS模块以无线的方式向服务器发送数据,服务器开通IP及端口,GPRS模块会向该端口发送机组数据,接收数据是服务器通过底层IO事件获知的,并不是配置文件通知,配置文件只是用于更新组件。

S25.数据处理线程将其组件修改标志位的值设置为不同于第一值的第二值,以标识该配置文件的修改已被响应和处理。

S26.数据处理线程将该待删除组件从该组件目录中删除。具体地,当数据处理线程为多个时,应当在所有数据处理线程都完成上述S24和S25步骤之后,才从组件目录中删除待删除组件。这是因为,在程序中,加载到每个线程中的组件只是一个内存映像,每一个映像都会使得待删除组件的文件使用数量加1,只有所有的线程中待删除组件的映像都-1,再删除待删除组件时才能彻底地删除组件,否则即使直接删除组件文件,各个线程在内存中存有上一版本的代码及数据,后续更新无效。

图3是本发明一实施例提供的一种服务器的组件热增加方法的流程图,如图3所示,该方法包括:

S31.将配置文件中的操作类型修改为增加,该配置文件中还包括待增加组件的文件名;例如,设置配置文件为com_mgr.conf,修改后的配置文件内容为:

name='libprot_0001.so'

operType=1

其中,第一行表示待增加的组件是'libprot_0001.so',后缀”.so”表示其是动态链接库文件,第二行表示操作类型,“1”表示操作类型为增加。

S32.当配置文件状态检测线程检测到配置文件发生修改时,获取该待增加组件的文件名以及操作类型,并将数据处理线程的组件更新标识位的值设置为第一值;例如,该组件更新标识位的第一值可以是true。

S33.数据处理线程根据该待增加组件的文件名以及操作类型执行增加组件操作,并将该数据处理线程的组件修改标志位的值设置为不同于第一值的第二值。例如,该组件更新标识位的第二值可以是false。

本发明实施例的热增加方法,只需设计开发人员修改服务器中的配置文件,在配置文件中写入待增加组件的文件名和将操作类型修改为增加,配置文件状态检测线程和数据处理线程就会根据这些信息自动完成组件热增加操作,不必中断服务器的正常工作,保证了服务器工作的连续性。

可选的,在上述步骤31之前,还包括:

将待增加组件以动态链接库的形式存入组件目录,组件目录位于服务器的可执行目录下;该可执行目录下还存有配置文件。

图4是本发明一实施例提供的另一种服务器的组件热增加方法的流程图,如图4所示,该方法包括:

S41.将待增加组件以动态链接库的形式存入服务器的组件目录。例如,将待增加组件libprot_0001.so存入服务器的可执行目录BIN下的组件目录protocol。

S42.将配置文件中的操作类型修改为增加,该配置文件中还包括待增加组件的文件名。例如,配置文件com_mgr.conf也位于可执行目录BIN下,其内容修改为:

name='libprot_0001.so'

operType=1

其中,第一行表示待增加的组件的文件名是'libprot_0001.so',第二行表示操作类型,“1”表示操作类型为增加。

S43.当配置文件状态检测线程检测到配置文件发生修改时,获取该待增加组件的文件名以及操作类型,并将数据处理线程的组件更新标识位的值设置为第一值。该第一值例如是true,表示数据处理线程可以进行更新组件的操作。

S44.数据处理线程将该待增加组件加载到组件集合中。在实际操作中,可以给数据处理线程执行更新操作设置触发条件,例如,当服务器接收到新数据时,触发数据处理线程检测其组件更新标识位的值是否为第一值,若是第一值,则执行上述该待增加组件加载到组件集合中的操作。

S45.数据处理线程设置其组件修改标志位的值为不同于第一值的第二值,以标识配置文件的修改已经被响应和处理。

S46.数据处理线程将待增加组件存入服务器的数据库。具体地,数据处理线程完成该待增加组件的解析后,将其存入数据库,从而使其正式生效。

图5是本发明一实施例提供的一种服务器的组件热替换方法的流程图,如图5所示,该方法包括:

S51.将被替换组件从服务器中删除,该删除采用的例如是上述任一种服务器的组件热删除方法。

S52.将被替换组件增加到服务器中,该增加采用的例如是上述任一种服务器的组件热增加方法。

本发明实施例的服务器的组件热替换方法,先做组件删除操作,再做组件增加操作,并且删除操作和增加操作都属于热更新操作,所以实现了不中断服务器的组件替换,保证了服务器的正常工作。

图6是本发明一实施例提供的一种服务器的组件热删除装置的示意图,如图6所示,该装置包括:

配置文件修改模块61,用于将配置文件中的操作类型修改为删除,该配置文件中还包括待删除组件的文件名;例如,修改后的配置文件内容为:

name='libprot_0001.so'

operType=2

其中,第一行表示待更新组件的名称是“libprot_0001.so”,由其后缀”.so”可知其是动态链接库文件;第二行表示操作类型,这里“2”表示操作类型是删除。

配置文件状态检测模块62,用于通过配置文件状态检测线程监测该配置文件的状态,以及当检测到配置文件发生修改时,获取该待删除组件的文件名以及操作类型,并将数据处理线程的组件更新标识位的值设置为第一值,数据处理线程只有在其组件更新标识位的值为第一值时才会执行更新组件的操作。该组件更新标识位的第一值例如是true。

组件删除模块63,用于通过数据处理线程执行删除组件操作,并将该数据处理线程的组件修改标志位的值设置为不同于第一值的第二值,以表示配置文件的修改已被响应和处理。该第二值例如是false。

本发明实施例的组件热删除装置,不需中断服务器的正常工作就可以完成组件删除,保证了服务器工作的连续性。

图7是本发明一实施例提供的一种服务器的组件热增加装置的示意图,如图7所示,该装置包括:

配置文件修改模块71,用于将配置文件中的操作类型修改为删除,该配置文件中还包括待删除组件的文件名;例如,修改后的配置文件内容为:

name='libprot_0001.so'

operType=1

其中,第一行表示待增加的组件是'libprot_0001.so',后缀”.so”表示其是动态链接库文件,第二行表示操作类型,“1”表示操作类型为增加。

配置文件状态检测模块72,用于通过配置文件状态检测线程监测配置文件的状态,以及当检测到配置文件发生修改时,获取该待删除组件的文件名以及操作类型,并将数据处理线程的组件更新标识位的值设置为第一值;数据处理线程只有在其组件更新标识位的值为第一值时才会执行更新组件的操作。该组件更新标识位的第一值例如是true。

组件增加模块73,用于通过数据处理线程执行删除组件操作,并将该数据处理线程的组件修改标志位的值设置为不同于第一值的第二值,以表示配置文件的修改已被响应和处理。该第二值例如是false。

本发明实施例的组件热增加装置,不需中断服务器的正常工作就可以完成组件增加操作,保证了服务器工作的连续性。

图8是本发明一实施例提供的一种服务器的组件热替换装置的示意图,如图8所示,该装置包括:

服务器的组件热删除装置81,例如是上述的服务器的组件热删除装置,用于将被替换组件从服务器中删除;

服务器的组件热增加装置82,例如是上述的服务器的组件热增加装置,用于将替换组件增加到该服务器中。

本发明实施例的服务器的组件热替换装置,通过热删除模块和热增加模块,先后完成删除待替换组件和增加替换组件的操作,并且删除操作和增加操作都属于热更新操作,所以实现了不中断服务器的组件替换,保证了服务器的正常工作。

虽然结合附图描述了本发明的实施方式,但是本领域技术人员可以在不脱离本发明的精神和范围的情况下作出各种修改和变型,这样的修改和变型均落入由所附权利要求所限定的范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1