一种配置文件更新方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机数据处理领域,尤其涉及一种配置文件更新方法、装置、电子设备及存储介质。
背景技术
在一个数量上具有上百台服务器的集群环境,各服务器之间的数据配置和同步是一个复杂且繁琐的过程。在现有的技术方案中,更改配置文件需对集群服务器进行大量手动操作,这将会消耗大量人力资源,并且更新效率低,同时,通过人工修改的方式逐个进行配置文件的修改容易造成不可预估的人为错误,导致集群系统的稳定性降低,另外,通过人工修改的方式没有将配置文件的更改记录保存,不便于配置文件的版本回溯。
发明内容
本申请提出一种配置文件更新方法,能够提高集群环境下配置文件的更新同步效率,减少了因为人工修改导致的错误,并且可实现配置文件的版本回溯。
根据本申请的第一方面,提供了一种配置文件更新方法,所述方法包括:
集群中的主服务器设置运行区域和编辑区域,其中所述运行区域包括第一配置文件,所述运行区域为加载所述第一配置文件的区域,所述编辑区域包括所述第一配置文件的副本,所述编辑区域为编辑所述副本的区域,所述编辑区域与所述运行区域相互隔离;
接收第一配置文件的更新指令;
对所述第一配置文件进行备份,并将备份记录记载在历史记录中;
根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本;
将所述编辑区域中的所述副本分发同步至所述集群中的子服务器,其中所述集群至少包括一个所述子服务器。
在一种可能的实现方式中,在根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本之后,所述方法还包括:
按照预设规则批量更改所述副本中配置项的名称,从而得到第二配置文件,其中所述第二配置文件用于读写分离场景的配置加载;
在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器的之后,所述方法还包括:
将所述第二配置文件分发同步至所述集群中的子服务器。
在一种可能的实现方式中,所述方法还包括:
所述集群中的主服务器和所述集群中的子服务器获取配置文件的加载方式,其中所述加载方式包括普通加载方式和只读加载方式;
在所述加载方式为所述普通加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述副本加载配置;
在所述加载方式为所述只读加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述第二配置文件加载配置。
在一种可能的实现方式中,所述对所述第一配置文件进行备份,并将备份记录记载在历史记录中,包括:
对所述第一配置文件进行备份,得到所述第一配置文件的备份文件,其中所述备份文件是以备份发生时机的时间戳命名的;
将所述备份文件保存至所述主服务器的配置更新历史文件夹中。
在一种可能的实现方式中,在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器之后,所述方法还包括:
在所述集群中的子服务器接收所述副本成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的更新成功响应消息;
在将所述第二配置文件分发同步至所述集群中的子服务器之后,所述方法还包括:
在所述集群中的子服务器接收所述第二配置文件成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的所述更新成功响应消息。
根据本申请的第二方面,提供了一种配置文件更新装置,该装置包括:设置单元、接收单元、备份单元、更新单元、分发单元,
所述设置单元,用于集群中的主服务器设置运行区域和编辑区域,其中所述运行区域包括第一配置文件,所述运行区域为加载所述第一配置文件的区域,所述编辑区域包括所述第一配置文件的副本,所述编辑区域为编辑所述副本的区域,所述编辑区域与所述运行区域相互隔离;
所述接收单元,用于接收第一配置文件的更新指令;
所述备份单元,用于对所述第一配置文件进行备份,并将备份记录记载在历史记录中;
所述更新单元,用于根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本;
所述分发单元,用于将所述编辑区域中的所述副本分发同步至所述集群中的子服务器,其中所述集群至少包括一个所述子服务器。
在一种可能的实现方式中,所述装置还包括,批量更改单元,所述批量更改单元,用于在根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本之后,
按照预设规则批量更改所述副本中配置项的名称,从而得到第二配置文件,其中所述第二配置文件用于读写分离场景的配置加载;
所述分发单元,还用于在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器的之后,
将所述第二配置文件分发同步至所述集群中的子服务器。
在一种可能的实现方式中,所述装置还包括获取单元、加载单元,
所述获取单元,用于所述集群中的主服务器和所述集群中的子服务器获取配置文件的加载方式,其中所述加载方式包括普通加载方式和只读加载方式;
所述加载单元,用于在所述加载方式为所述普通加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述副本加载配置;
所述加载单元,还用于在所述加载方式为所述只读加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述第二配置文件加载配置。
在一种可能的实现方式中,所述备份单元用于,
对所述第一配置文件进行备份,得到所述第一配置文件的备份文件,其中所述备份文件是以备份发生时机的时间戳命名的;
将所述备份文件保存至所述主服务器的配置更新历史文件夹中。
在一种可能的实现方式中,所述接收单元,还用于在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器之后,在所述集群中的子服务器接收所述副本成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的更新成功响应消息;
所述接收单元,还用于在将所述第二配置文件分发同步至所述集群中的子服务器之后,在所述集群中的子服务器接收所述第二配置文件成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的所述更新成功响应消息。
根据本申请的第三方面,提供一种服务器,包括处理器、输入设备、输出设备和存储器,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器用于调用所述程序指令,执行上述配置文件更新方法。
根据本申请的第四方面,提供一种计算机可读存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述配置文件更新方法。
基于上述公开的配置文件更新方法、装置、电子设备以及计算机可读存储介质,集群中的主服务器接收第一配置文件的更新指令,根据所述更新指令,获取针对所述第一配置文件更新后的第二配置文件,并将所述第一配置文件替换成第二配置文件,对所述第二配置文件进行备份,并将备份记录记载在所述主服务器的配置更新历史记录中,最后将所述第二配置文件分发同步至所述集群中的子服务器。本申请公开的实施例,能够提高集群环境下配置文件的更新同步效率,减少了因为人工修改导致的错误,并且可实现配置文件的版本回溯。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的配置文件更新方法示意流程图;
图2是本申请实施例提供的配置文件备份示意图;
图3是本申请实施例提供的执行配置文件备份操作的代码;
图4是本申请实施例提供的配置文件更新示意图;
图5是本申请实施例提供的分发配置文件的示意图;
图6是本申请实施例提供的配置文件更新装置结构示意图;
图7是本申请实施例提供的配置文件更新装置另一结构示意图;
图8是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本公开说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本公开。如在本公开说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本公开说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
本申请公开的实施例提供一配置文件更新方法,请参见图1,图1是本申请实施例提供的配置文件更新方法示意流程图。
101、集群中的主服务器设置运行区域和编辑区域。
在一种可能的实现方式中,所述运行区域包括第一配置文件,所述运行区域为加载所述第一配置文件的区域,所述编辑区域包括所述第一配置文件的副本,所述编辑区域为编辑所述副本的区域,所述编辑区域与所述运行区域相互隔离。具体地,所述运行区域可以是存放项目代码的运行路径,运行路径包括项目代码的运行环境,该运行环境通过所述第一配置文件加载得到。所述编辑区域可以是除运行路径以外的其他路径,该路径称为编辑路径,编辑路径包括第一配置文件的副本,编辑路径与运行路径相互独立,互不干扰。开发人员可以根据需要在编辑路径修改第一配置文件的副本,修改后的副本对运行环境的不产生影响。举例来说,所述运行路径可以是/home/www/,所述编辑路径可以是/home/www/env,此处不作路径的具体限定。
在一种可能的实现方式中,集群中的服务器(包括主服务器和子服务器)可以是web服务器(网站服务器),所述web服务器是基于Laravel框架的,其中Laravel框架是一个简洁,优雅的PHP Web开发框架,使用IoC(依赖注入容器)结构和MVC(Model ViewController模型-视图-控制器)模式。作为一个容器框架,Larave框架重点解决大型项目中,各个模块功能冗余,耦合度高的问题,让各个模块的功能代码都能轻松通过Laravel框架衔接起来,以保障系统在多个版本的开发过后,代码依然简洁明了,可读性高。
102、接收第一配置文件的更新指令。
在一种可能的实现方式中,所述第一配置文件的更新指令可以通过人为触发的方式获得,也可以通过程序代码自动触发的方式获得。其中所述人为触发的方式包括:通过接收开发者在主服务器命令行终端中手动输入的方式来接收第一配置文件的更新指令;或者通过手动运行shell(希尔)脚本的方式,来接收第一配置文件更新指令。所述序代码自动触发的方式包括:通过运行应用程序的方式,来接收第一配置文件的更新指令;还可以通过其他服务器发送的方式,来接收第一配置文件更新指令。上述第一配置文件的更新指令的接收方式的例子仅仅用于举例,不应构成具体限定。
103、对所述第一配置文件进行备份,并将备份记录记载在历史记录中。
在一可能的实现方式中,所述对所述第一配置文件进行备份,并将备份记录记载在历史记录中,包括:对所述第一配置文件进行备份,得到所述第一配置文件的备份文件,其中所述备份文件是以备份发生时机的时间戳命名的;将所述备份文件保存至所述主服务器的配置更新历史文件夹中。参见图2,图2是本申请实施例提供的配置文件备份示意图,从图2可知,备份是将运行目录中的第一配置文件拷贝到主服务器的配置更新历史文件夹中的,而不是拷贝编辑区域中的第一配置文件副本。所述备份文件是以备份发生实际的时间戳来命名的,例如,当前时间为“2018-12-04 15:50:50”,通过转换为时间戳格式后得到“1543909850”。所述时间戳为Unix时间戳(英文为Unix epoch,Unix time,POSIXme或Unixtimestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。进一步举例,在时间点为“2018-12-04 15:50:50”的时刻将所述第一配置文件.env进行备份,得到的备份文件的命名可以是:.env_bk_1543909850。通过时间戳的形式对备份文件进行命名,保证了各个备份文件名称不会重复,并且可以根据备份时间来精准地查询到所要查找的备份文件,从而实现了配置文件的的版本回溯,其中回溯的版本可根据时间点来确定。
再参见图3,图3是本申请实施例提供的执行配置文件备份操作的代码,该代码可实现将运行目录下的第一配置文件拷贝存储至所述主服务器的配置更新历史文件夹中。所述代码还可以是其他编写逻辑,此处不作具体限定。
104、根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本。
在一可能的实现方式中,在所述编辑区域中的所述副本可以是经过开发人员根据实际需要更改得到的,所述更改包括增加、删除、修改以及替换等操作。参见图4,所述运行区域可以是项目代码运行目录,具体可以是/home/www/,所述编辑区域可以是配置文件的编辑目录,具体可以是/home/www/env/,所述项目代码运行目录和所述配置文件的编辑目录相互隔离。主服务器根据更新指令,将编辑目录中副本.env拷贝,去替换项目代码运行目录中第一配置文件.env。
在一可能的实现方式中,在根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本之后,所述方法还包括:按照预设规则批量更改所述副本中配置项的名称,从而得到第二配置文件,其中所述第二配置文件用于读写分离场景的配置加载。
例如,在读写分离的应用场景中,项目代码是无法加载配置文件中的部分配置项的,只有将该部分配置项的名称进行修改,例如对名称增加或者删除前缀后缀,项目代码才能加载对名称修改后的配置项。其中,所述读写分离的应用场景包括数据库读写分离。通过按照预设规则批量更改副本中配置项名称从而得到的第二配置文件,可应用于读写分离的应用场景,使得本申请提供的配置文件更新方法的兼容性更强,使用范围更广。
105、将所述编辑区域中的所述副本分发同步至所述集群中的子服务器,其中所述集群至少包括一个所述子服务器。
优选地,将所述编辑区域中的所述副本分发同步至所述集群中的子服务器是通过linux操作系统中提供的安全拷贝指令(scp,secure copy)进行传输的,其中scp的指令用于在Linux下进行远程拷贝文件的命令,其作用是可以在一台服务器将本地的文件上传到一台远端服务器,或将远端服务器的文件下载到本地。
可选地,所述主服务器将所述编辑区域中的所述副本分发同步至所述集群中的子服务器可以通过超文本传输协议(HTTP,HyperText Transfer Protocol)进行传输,也可以通过传输控制协议(TCP,Transmission Control Protocol)进行传输,还可以通过用户数据报协议(UDP,User Datagram Protocol)进行传输。此处对副本的分发同步的传输协议不作具体限定。
在一可能的实现方式中,主服务器通过预先将集群中的子服务器的地址记录在脚本文件中,其中子服务器的地址使用ip地址以及端口号来标识,然后通过scp指令向远程子服务器的地址发送所述编辑区域中的所述副本。具体参见图5,图5是本申请实施例提供的分发配置文件的示意图,图5包括1台主服务器以及3台子服务器,其中子服务器1的地址为:172.16.5.203:10022,子服务器2的地址为:172.16.5.204:10022,子服务器3的地址为:172.16.5.205:10022,主服务器通过scp指令向远程子服务器的地址发送所述编辑区域中的.env文件。
在一可能的实现方式中,在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器的之后,所述方法还包括:将所述第二配置文件分发同步至所述集群中的子服务器。所述对第二配置文件的分发同步方式与前述对所述所述编辑区域中的所述副本的分发同步方式相同,此处不再赘述。
在一可能的实现方式中,在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器之后,所述方法还包括:在所述集群中的子服务器接收所述副本成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的更新成功响应消息;在将所述第二配置文件分发同步至所述集群中的子服务器之后,所述方法还包括:在所述集群中的子服务器接收所述第二配置文件成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的所述更新成功响应消息。在一可能的实现方式中,所述主服务器在预设时间内没有接收到所述更新成功响应消息,所述主服务器重新分发同步所述副本,直至在预设时间内接收到所述更新成功响应消息。其中,所述响应消息用于主服务器确认所述子服务器成功接收所述副本且完成更新替换配置文件,所述响应消息确保了所述副本传输的可靠性,进而提高了本申请提供的配置文件更新方法的可靠稳定性。
在一可能的实现方式中,所述方法还包括:所述集群中的主服务器和所述集群中的子服务器获取配置文件的加载方式,其中所述加载方式包括普通加载方式和只读加载方式;在所述加载方式为所述普通加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述副本加载配置;在所述加载方式为所述只读加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述第二配置文件加载配置。
基于上述公开的配置文件更新方法,集群中的主服务器接收第一配置文件的更新指令,根据所述更新指令,获取针对所述第一配置文件更新后的第二配置文件,并将所述第一配置文件替换成第二配置文件,对所述第二配置文件进行备份,并将备份记录记载在所述主服务器的配置更新历史记录中,最后将所述第二配置文件分发同步至所述集群中的子服务器。本申请公开的实施例,能够提高集群环境下配置文件的更新同步效率,减少了因为人工修改导致的错误,并且可实现配置文件的版本回溯。
本申请公开的实施例提供一配置文件更新装置,请参见图6,图6是本申请实施例提供的配置文件更新装置的结构示意图。
根据本申请的第二方面,提供了一种配置文件更新装置,该装置包括:设置单元601、接收单元602、备份单元603、更新单元604、分发单元605。
所述设置单元601,用于集群中的主服务器设置运行区域和编辑区域。
在一种可能的实现方式中,所述运行区域包括第一配置文件,所述运行区域为加载所述第一配置文件的区域,所述编辑区域包括所述第一配置文件的副本,所述编辑区域为编辑所述副本的区域,所述编辑区域与所述运行区域相互隔离。具体地,所述运行区域可以是存放项目代码的运行路径,运行路径包括项目代码的运行环境,该运行环境通过所述第一配置文件加载得到。所述编辑区域可以是除运行路径以外的其他路径,该路径称为编辑路径,编辑路径包括第一配置文件的副本,编辑路径与运行路径相互独立,互不干扰。开发人员可以根据需要在编辑路径修改第一配置文件的副本,修改后的副本对运行环境的不产生影响。举例来说,所述运行路径可以是/home/www/,所述编辑路径可以是/home/www/env,此处不作路径的具体限定。
在一种可能的实现方式中,集群中的服务器(包括主服务器和子服务器)可以是web服务器(网站服务器),所述web服务器是基于Laravel框架的,其中Laravel框架是一个简洁,优雅的PHP Web开发框架,使用IoC(依赖注入容器)结构和MVC(Model ViewController模型-视图-控制器)模式。作为一个容器框架,Larave框架重点解决大型项目中,各个模块功能冗余,耦合度高的问题,让各个模块的功能代码都能轻松通过Laravel框架衔接起来,以保障系统在多个版本的开发过后,代码依然简洁明了,可读性高。
所述接收单元602,用于接收第一配置文件的更新指令。
在一种可能的实现方式中,所述第一配置文件的更新指令可以通过人为触发的方式获得,也可以通过程序代码自动触发的方式获得。其中所述人为触发的方式包括:通过接收开发者在主服务器命令行终端中手动输入的方式来接收第一配置文件的更新指令;或者通过手动运行shell(希尔)脚本的方式,来接收第一配置文件更新指令。所述序代码自动触发的方式包括:通过运行应用程序的方式,来接收第一配置文件的更新指令;还可以通过其他服务器发送的方式,来接收第一配置文件更新指令。上述第一配置文件的更新指令的接收方式的例子仅仅用于举例,不应构成具体限定。
所述备份单元603,用于对所述第一配置文件进行备份,并将备份记录记载在历史记录中。
在一种可能的实现方式中,所述备份单元603用于,对所述第一配置文件进行备份,得到所述第一配置文件的备份文件,其中所述备份文件是以备份发生时机的时间戳命名的;将所述备份文件保存至所述主服务器的配置更新历史文件夹中。参见图2,图2是本申请实施例提供的配置文件备份示意图,从图2可知,备份是将运行目录中的第一配置文件拷贝到主服务器的配置更新历史文件夹中的,而不是拷贝编辑区域中的第一配置文件副本。所述备份文件是以备份发生实际的时间戳来命名的,例如,当前时间为“2018-12-04 15:50:50”,通过转换为时间戳格式后得到“1543909850”。所述时间戳为Unix时间戳(英文为Unix epoch,Unix time,POSIXme或Unix timestamp)是从1970年1月1日(UTC/GMT的午夜)开始所经过的秒数。进一步举例,在时间点为“2018-12-04 15:50:50”的时刻将所述第一配置文件.env进行备份,得到的备份文件的命名可以是:.env_bk_1543909850。通过时间戳的形式对备份文件进行命名,保证了各个备份文件名称不会重复,并且可以根据备份时间来精准地查询到所要查找的备份文件,从而实现了配置文件的的版本回溯,其中回溯的版本可根据时间点来确定。
再参见图3,图3是本申请实施例提供的执行配置文件备份操作的代码,该代码可实现将运行目录下的第一配置文件拷贝存储至所述主服务器的配置更新历史文件夹中。所述代码还可以是其他编写逻辑,此处不作具体限定。
所述更新单元604,用于根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本。
在一可能的实现方式中,在所述编辑区域中的所述副本可以是经过开发人员根据实际需要更改得到的,所述更改包括增加、删除、修改以及替换等操作。参见图4,所述运行区域可以是项目代码运行目录,具体可以是/home/www/,所述编辑区域可以是配置文件的编辑目录,具体可以是/home/www/env/,所述项目代码运行目录和所述配置文件的编辑目录相互隔离。主服务器根据更新指令,将编辑目录中副本.env拷贝,去替换项目代码运行目录中第一配置文件.env。
在一种可能的实现方式中,参见图7,所述装置还包括批量更改单元701,所述批量更改单元,用于在根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本之后,按照预设规则批量更改所述副本中配置项的名称,从而得到第二配置文件,其中所述第二配置文件用于读写分离场景的配置加载。
例如,在读写分离的应用场景中,项目代码是无法加载配置文件中的部分配置项的,只有将该部分配置项的名称进行修改,例如对名称增加或者删除前缀后缀,项目代码才能加载对名称修改后的配置项。其中,所述读写分离的应用场景包括数据库读写分离。通过按照预设规则批量更改副本中配置项名称从而得到的第二配置文件,可应用于读写分离的应用场景,使得本申请提供的配置文件更新方法的兼容性更强,使用范围更广。
所述分发单元605,用于将所述编辑区域中的所述副本分发同步至所述集群中的子服务器,其中所述集群至少包括一个所述子服务器。
优选地,将所述编辑区域中的所述副本分发同步至所述集群中的子服务器是通过linux操作系统中提供的安全拷贝指令(scp,secure copy)进行传输的,其中scp的指令用于在Linux下进行远程拷贝文件的命令,其作用是可以在一台服务器将本地的文件上传到一台远端服务器,或将远端服务器的文件下载到本地。
可选地,所述主服务器将所述编辑区域中的所述副本分发同步至所述集群中的子服务器可以通过超文本传输协议(HTTP,HyperText Transfer Protocol)进行传输,也可以通过传输控制协议(TCP,Transmission Control Protocol)进行传输,还可以通过用户数据报协议(UDP,User Datagram Protocol)进行传输。此处对副本的分发同步的传输协议不作具体限定。
在一可能的实现方式中,主服务器通过预先将集群中的子服务器的地址记录在脚本文件中,其中子服务器的地址使用ip地址以及端口号来标识,然后通过scp指令向远程子服务器的地址发送所述编辑区域中的所述副本。具体参见图5,图5是本申请实施例提供的分发配置文件的示意图,图5包括1台主服务器以及3台子服务器,其中子服务器1的地址为:172.16.5.203:10022,子服务器2的地址为:172.16.5.204:10022,子服务器3的地址为:172.16.5.205:10022,主服务器通过scp指令向远程子服务器的地址发送所述编辑区域中的.env文件。
在一可能的实现方式中,所述分发单元605,还用于在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器的之后,将所述第二配置文件分发同步至所述集群中的子服务器。所述对第二配置文件的分发同步方式与前述对所述所述编辑区域中的所述副本的分发同步方式相同,此处不再赘述。
在一种可能的实现方式中,所述接收单元602,还用于在将所述编辑区域中的所述副本分发同步至所述集群中的子服务器之后,在所述集群中的子服务器接收所述副本成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的更新成功响应消息;所述接收单元602,还用于在将所述第二配置文件分发同步至所述集群中的子服务器之后,在所述集群中的子服务器接收所述第二配置文件成功的情况下,所述集群中的主服务器接收来自所述集群中的子服务器的所述更新成功响应消息。在一可能的实现方式中,所述主服务器在预设时间内没有接收到所述更新成功响应消息,所述主服务器重新分发同步所述副本,直至在预设时间内接收到所述更新成功响应消息。其中,所述响应消息用于主服务器确认所述子服务器成功接收所述副本且完成更新替换配置文件,所述响应消息确保了所述副本传输的可靠性,进而提高了本申请提供的配置文件更新方法的可靠稳定性。
在一种可能的实现方式中,参见图7,所述装置还包括获取单元702、加载单元703,所述获取单元702,用于所述集群中的主服务器和所述集群中的子服务器获取配置文件的加载方式,其中所述加载方式包括普通加载方式和只读加载方式;所述加载单元703,用于在所述加载方式为所述普通加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述副本加载配置;所述加载单元703,还用于在所述加载方式为所述只读加载方式的情况下,所述集群中的主服务器和所述集群中的子服务器根据所述第二配置文件加载配置。
基于上述公开的配置文件更新装置,集群中的主服务器接收第一配置文件的更新指令,根据所述更新指令,获取针对所述第一配置文件更新后的第二配置文件,并将所述第一配置文件替换成第二配置文件,对所述第二配置文件进行备份,并将备份记录记载在所述主服务器的配置更新历史记录中,最后将所述第二配置文件分发同步至所述集群中的子服务器。本申请公开的实施例,能够提高集群环境下配置文件的更新同步效率,减少了因为人工修改导致的错误,并且可实现配置文件的版本回溯。
另外,本发明实施例提供了一种电子设备,其可以包括本发明上述任一实施例的配置文件更新装置。具体地,该电子设备例如可以是终端设备或者服务器等设备。
本发明实施例还提供了另一种电子设备,包括:
存储器,用于存储可执行指令;以及
处理器,用于与所述存储器通信以执行所述可执行指令从而完成本发明上述任一实施例所述配置文件更新方法的操作。
图4是本发明实施例提供的一种电子设备结构框图。下面参考图4,其示出了适于用来实现本发明实施例的终端设备或服务器的电子设备的结构示意图。如图4所示,该电子设备包括:一个或多个处理器801;一个或多个输入设备802,一个或多个输出设备803和存储器804。上述处理器801、输入设备802、输出设备803和存储器804通过总线805连接。存储器802用于存储指令,处理器801用于执行存储器802存储的指令。其中,处理器801被配置用于调用所述程序指令执行:
集群中的主服务器设置运行区域和编辑区域,其中所述运行区域包括第一配置文件,所述运行区域为加载所述第一配置文件的区域,所述编辑区域包括所述第一配置文件的副本,所述编辑区域为编辑所述副本的区域,所述编辑区域与所述运行区域相互隔离;
接收第一配置文件的更新指令;
对所述第一配置文件进行备份,并将备份记录记载在历史记录中;
根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本;
将所述编辑区域中的所述副本分发同步至所述集群中的子服务器,其中所述集群至少包括一个所述子服务器。
应当理解,在本发明实施例中,所称处理器801可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备802可以包括键盘、手写板等,输出设备803可以包括显示器(LCD等)、扬声器等。
该存储器804可以包括只读存储器和随机存取存储器,并向处理器801提供指令和数据。存储器804的一部分还可以包括非易失性随机存取存储器。例如,存储器804还可以存储设备类型的信息。
具体实现中,本发明实施例中所描述的处理器801、输入设备802、输出设备803可执行本发明实施例提供的一种配置文件更新方法和系统的各个实施例中所描述的实现方式,在此不再赘述。
在本发明的另一实施例中提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令被处理器执行时实现:集群中的主服务器设置运行区域和编辑区域,其中所述运行区域包括第一配置文件,所述运行区域为加载所述第一配置文件的区域,所述编辑区域包括所述第一配置文件的副本,所述编辑区域为编辑所述副本的区域,所述编辑区域与所述运行区域相互隔离;接收第一配置文件的更新指令;对所述第一配置文件进行备份,并将备份记录记载在历史记录中;根据所述更新指令,将所述运行区域中的所述第一配置文件替换为所述编辑区域中的所述副本;将所述编辑区域中的所述副本分发同步至所述集群中的子服务器,其中所述集群至少包括一个所述子服务器。
所述计算机可读存储介质可以是前述任一实施例所述的电子设备的内部存储单元,例如终端的硬盘或内存。所述计算机可读存储介质也可以是所述终端的外部存储设备,例如所述终端上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述计算机可读存储介质还可以既包括所述电子设备的内部存储单元也包括外部存储设备。所述计算机可读存储介质用于存储所述计算机程序以及所述电子设备所需的其他程序和数据。所述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的服务器、设备和单元的具体工作过程,可以参考前述方法实施例中的对应过程,也可执行发明实施例所描述的电子设备的实现方式,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的服务器、设备和方法,可以通过其它的方式实现。例如,以上所描述的服务器实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。