配置文件的生效方法、装置、电子设备和可读存储介质
文献发布时间:2023-06-19 19:16:40
技术领域
本发明实施例涉及配置文件处理技术领域,尤其涉及一种配置文件的生效方法、装置、电子设备和可读存储介质。
背景技术
目前市场上主流的实现配置文件的生效方法主要是以下两种:
一种方法是,先更新配置文件,然后再重启相关项目服务,在重启的过程中主动去读取配置文件的新版本内容,从而达到配置文件的管理目的。但这种方法往往项目重启是非常慢的,如果存在一些非常紧急的问题,该方法会很大程度的影响业务的正常进行。
另一种方法是,在项目运行的服务器目录保存一份配置文件,每次对配置文件做修改都会同步到这个文件中,项目运行的时候获取配置也是使用相对路径去读取对应的配置。这种方法虽然可以让修改后的配置文件数据快速生效,但是强依赖于服务器中的某个文件,假如该文件损毁或者项目服务需要迁移,都会造成项目运行异常的情况。
发明内容
本发明实施例提供一种配置文件的生效方法、装置、电子设备和可读存储介质,以解决现有的配置文件改动后生效时间长,且依赖于某个相对路径的文件的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种配置文件的生效方法,包括:
获取修改后的目标配置文件,所述目标配置文件应用于至少一个目标项目服务;
获取所述修改后的目标配置文件中的至少一个改动点,并根据所述至少一个改动点,生成改动项数据包;
与所述至少一个目标项目服务建立长链接,并向所述至少一个目标项目服务发送所述改动项数据包。
可选的,根据所述至少一个改动点,生成改动项数据包,包括:
将所述至少一个改动点的代码从第一层到最后一层按代码级别拆分,生成改动链;所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;
将所述至少一个改动点打包成改动项数据包。
可选的,所述与所述至少一个目标项目服务建立长链接,包括:
通过HTTP请求与所述至少一个目标项目服务建立长链接。
可选的,还包括:
接收所述目标项目服务反馈的修改状态,修改状态包括:修改成功。
第二方面,本发明实施例提供了一种配置文件的生效方法,包括:
与终端建立长链接;
通过所述长链接接收终端发送的目标配置文件的改动项数据包,其中,所述改动项数据包中包括所述目标配置文件中的至少一个改动点;
对所述改动项数据包进行解析,得到至少一个改动点;
将所述至少一个改动点反射到目标项目服务中的目标配置文件的对应位置。
可选的,所述对所述改动项数据包进行解析,得到至少一个改动点,包括:
将所述改动项数据包解析为至少一条改动链;所述改动链为将修改后的目标配置文件中的改动项的代码从第一层到最后一层按代码级别拆分生成的,所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;
将所述至少一条改动链中逗号连接的代码进行拆分;
若所述改动链中的代码有上下级关系,再将所述至少一条改动链中冒号连接的代码进行拆分;
得到修改后的目标配置文件中的改动点。
可选的,向终端发送所述目标配置文件的修改状态。
第三方面,本发明实施例提供了一种配置文件的生效装置,包括:
获取模块,用于获取修改后的目标配置文件,所述目标配置文件应用于至少一个目标项目服务;
第一处理模块,用于获取所述修改后的目标配置文件中的至少一个改动点,并根据所述至少一个改动点,生成改动项数据包;
第二处理模块,用于与所述至少一个目标项目服务建立长链接,并向所述至少一个目标项目服务发送所述改动项数据包。
可选的,所述第一处理模块,包括:
第一处理子模块,用于将所述至少一个改动点的代码从第一层到最后一层按代码级别拆分,生成改动链;所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;
第二处理子模块,用于将所述至少一个改动点打包成改动项数据包。
可选的,所述第二处理模块,包括:
第三处理子模块,用于通过HTTP请求与所述至少一个目标项目服务建立长链接。
可选的,还包括:
接收模块,用于接收所述目标项目服务反馈的修改状态,修改状态包括:修改成功。
第四方面,本发明实施例提供了一种配置文件的生效装置,包括:
第三处理模块,用于与终端建立长链接;
第四处理模块,用于通过所述长链接接收终端发送的目标配置文件的改动项数据包,其中,所述改动项数据包中包括所述目标配置文件中的至少一个改动点;
解析模块,用于对所述改动项数据包进行解析,得到至少一个改动点;
第五处理模块,用于将所述至少一个改动点反射到目标项目服务中的目标配置文件的对应位置。
可选的,所述解析模块,包括:
解析子模块,用于将所述改动项数据包解析为至少一条改动链;所述改动链为将修改后的目标配置文件中的改动项的代码从第一层到最后一层按代码级别拆分生成的,所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;
第一拆分子模块,用于将所述至少一条改动链中逗号连接的代码进行拆分;
第二拆分子模块,用于若所述改动链中的代码有上下级关系,再将所述至少一条改动链中冒号连接的代码进行拆分;
第四处理子模块,用于得到修改后的目标配置文件中的改动点。
可选的,反馈模块,用于向终端发送所述目标配置文件的修改状态。
第五方面,本发明实施例提供了一种电子设备,包括处理器,存储器及存储在所述存储器上并可在所述处理器上运行的程序或指令,所述程序或指令被所述处理器执行时实现如第一方面中任一项所述的配置文件的生效方法,或如第二方面中任一项所述的配置文件的生效方法中的步骤。
第六方面,本发明实施例提供了一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现如第一方面中任一项所述的配置文件的生效方法,或如第二方面中任一项所述的配置文件的生效方法中的步骤。
在本发明中,通过跟项目服务建立长链接,将改动的配置文件数据实时同步给项目服务,做到配置信息快速生效,提升服务的高可用性,解决了现有的配置文件改动后生效时间长,且依赖于某个相对路径的文件的问题。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1是本发明实施例提供的一种配置文件的生效方法应用于终端的流程图;
图2是本发明实施例提供的一种配置文件的生效方法的改动项示意图;
图3是本发明实施例提供的一种配置文件的生效方法应用于项目服务的流程图;
图4是本发明实施例提供的一种配置文件的生效方法的解析流程图;
图5是本发明实施例提供的一种配置文件的生效装置的结构示意图;
图6是本发明实施例提供的另一种配置文件的生效装置的结构示意图;
图7是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,本发明实施例提供了一种配置文件的生效方法,包括:
步骤11:获取修改后的目标配置文件,所述目标配置文件应用于至少一个目标项目服务;
本发明实施例中,对YAML格式的目标配置文件的数据做修改操作,得到修改后的目标配置文件。
步骤12:获取所述修改后的目标配置文件中的至少一个改动点,并根据所述至少一个改动点,生成改动项数据包;
本发明实施例中,通过对比所述目标配置文件修改前后的内容,获取实际修改后的影响代码行,即改动点,将所述至少一个改动点的代码从第一层到最后一层按代码级别拆分,生成改动链;所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;例如:将图2中的改动点拆分为:“testConfig:Acolumn:A1Detail=1,testConfig:Acolumn:A2Detail=2,testConfig:Bcolumn:B1Detail=3”,所述改动项数据包中包含了所有了本次改动的所有配置记录。
步骤13:与所述至少一个目标项目服务建立长链接,并向所述至少一个目标项目服务发送所述改动项数据包。
本发明实施例中,通过HTTP请求的方式与对应的项目服务建立长链接,将改动项以数据包的形式通知对应的项目服务。
本发明实施例中,通过跟项目服务建立长链接,将改动的配置文件数据实时同步给项目服务,做到配置信息快速生效,提升服务的高可用性,解决了现有的配置文件改动后生效时间长,且依赖于某个相对路径的文件的问题。
本发明实施例中,可选的,还包括:
接收所述目标项目服务反馈的修改状态,修改状态包括:修改成功。
本发明实施例中,接收所述目标项目服务反馈的配置变量修改完成后响应给配置中心的一个HTTP_CODE为200的状态码表示该节点的服务已成功修改。
本发明实施例中,使得修改配置文件后对应的数据都能够快速生效,将配置文件生效的时间从“分钟”级降低到“毫秒”级,大大提高了效率,并且配置文件与项目服务隔离开,做到了物理和业务上的解耦,在一定程度上减少了配置文件不可用的情况发生,从而提高项目服务的高可用性。
请参考图3,本发明实施例提供了一种配置文件的生效方法,包括:
步骤31:与终端建立长链接;
步骤32:通过所述长链接接收终端发送的目标配置文件的改动项数据包,其中,所述改动项数据包中包括所述目标配置文件中的至少一个改动点;
本发明实施例中,通过HTTP请求的方式与对应的终端建立长链接,接收所述改动项数据包。
步骤33:对所述改动项数据包进行解析,得到至少一个改动点;
步骤34:将所述至少一个改动点反射到目标项目服务中的目标配置文件的对应位置。
本发明实施例中,对目标项目服务中维护的目标配置文件中的变量进行赋值,即更新操作,从而达到目标项目服务里的目标配置文件完成更新的目的。
本发明实施例中,通过跟终端建立长链接,实时同步改动的配置文件数据,做到配置信息快速生效,提升服务的高可用性,解决了现有的配置文件改动后生效时间长,且依赖于某个相对路径的文件的问题。
请参考图4,本发明实施例中,可选的,在步骤33中,所述对所述改动项数据包进行解析,得到至少一个改动点,包括:
将所述改动项数据包解析为至少一条改动链;所述改动链为将修改后的目标配置文件中的改动项的代码从第一层到最后一层按代码级别拆分生成的,所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;
将所述至少一条改动链中逗号连接的代码进行拆分,得到多个改动点;
若所述改动链中的代码有上下级关系,再将所述至少一条改动链中冒号连接的代码进行拆分,得到一条配置,即得到修改后的目标配置文件中的改动点;
按照所述配置从第一层到尾层的顺序处理每个配置变量,若所述配置变量不是尾层,则继续按照所述配置从第一层到尾层的顺序处理每个配置变量;
若所述配置变量是尾层,则找到目标项目服务中对应的配置变量,并通过反射的方式对其值进行更新;
并向终端发送更新配置成功,即所述目标配置文件的修改状态,修改状态包括:修改成功。
本发明实施例中,进行完对所述配置变量进行赋值,即更新操作,从而达到项目服务里的配置完成更新的目的,响应一个HTTP_CODE为200的状态码表示该目标项目服务的节点的服务已成功修改。
请参考图5,本发明实施例提供了一种配置文件的生效装置,包括:
获取模块51,用于获取修改后的目标配置文件,所述目标配置文件应用于至少一个目标项目服务;
第一处理模块52,用于获取所述修改后的目标配置文件中的至少一个改动点,并根据所述至少一个改动点,生成改动项数据包;
第二处理模块53,用于与所述至少一个目标项目服务建立长链接,并向所述至少一个目标项目服务发送所述改动项数据包。
本发明实施例中,可选的,所述第一处理模块,包括:
第一处理子模块,用于将所述至少一个改动点的代码从第一层到最后一层按代码级别拆分,生成改动链;所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;
第二处理子模块,用于将所述至少一个改动点打包成改动项数据包。
本发明实施例中,可选的,所述第二处理模块,包括:
第三处理子模块,用于通过HTTP请求与所述至少一个目标项目服务建立长链接。
本发明实施例中,可选的,还包括:
接收模块,用于接收所述目标项目服务反馈的修改状态,修改状态包括:修改成功。
本发明实施例提供的配置文件的生效装置能够实现图1的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述
请参考图6,本发明实施例提供了一种配置文件的生效装置,包括:
第三处理模块61,用于与终端建立长链接;
第四处理模块62,用于通过所述长链接接收终端发送的目标配置文件的改动项数据包,其中,所述改动项数据包中包括所述目标配置文件中的至少一个改动点;
解析模块63,用于对所述改动项数据包进行解析,得到至少一个改动点;
第五处理模块64,用于将所述至少一个改动点反射到目标项目服务中的目标配置文件的对应位置。
本发明实施例中,可选的,所述解析模块,包括:
解析子模块,用于将所述改动项数据包解析为至少一条改动链;所述改动链为将修改后的目标配置文件中的改动项的代码从第一层到最后一层按代码级别拆分生成的,所述改动链中同一级别的代码用逗号连接,上下级代码用冒号连接;
第一拆分子模块,用于将所述至少一条改动链中逗号连接的代码进行拆分;
第二拆分子模块,用于若所述改动链中的代码有上下级关系,再将所述至少一条改动链中冒号连接的代码进行拆分;
第四处理子模块,用于得到修改后的目标配置文件中的改动点。
本发明实施例中,可选的,反馈模块,用于向终端发送所述目标配置文件的修改状态。
本发明实施例提供的配置文件的生效装置能够实现图3的方法实施例实现的各个过程,并达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例提供了一种电子设备70,参见图7所示,图7为本发明实施例电子设备70的原理框图,包括处理器71,存储器72及存储在存储器X2上并可在处理器71上运行的程序或指令,程序或指令被处理器执行时实现本发明的任一项配置文件的生效方法中的步骤。
本发明实施例提供了一种可读存储介质,可读存储介质上存储程序或指令,程序或指令被处理器执行时实现如上述任一项的配置文件的生效方法的实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存 (PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器 (DRAM)、其他类型的随机存取存储器 (RAM)、只读存储器(ROM)、电可擦除可编程只读存储器 (EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器 (CD-ROM)、数字多功能光盘 (DVD) 或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体 (transitory media),如调制的数据信号和载波。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台服务分类设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
- 一种浴室加热装置和用于控制浴室加热装置的方法、设备、电子设备及计算机可读存储介质
- 模态框构建方法、装置、电子设备、计算机可读存储介质
- 日志信息处理方法、装置、电子设备及可读存储介质
- 电子设备、音量调节方法及装置、计算机可读存储介质
- 路线规划方法、装置、电子设备及可读存储介质
- 一种配置文件分级生效方法和装置、电子设备、存储介质
- 配置文件处理方法、装置和电子设备及可读存储介质