本申请涉及配置文件同步领域,尤其是涉及一种基于git的配置同步方法及系统。
背景技术:
1、随着互联网技术的发展,客户-服务器模式(client-server model)得到广泛应用。在这种模式下,传统的客户端的配置更新过程一般采用tcp长连接或http短连接等,具体实施过程为客户端定时的与服务端进行网络通信,每次从服务端拉取最新的配置,进行本地更新。
2、然而,传统的配置同步方法存在诸多弊端,其中包括多集群内配置更新的可靠性以及版本管理问题。在对多集群系统进行配置更新时,往往会出现不同的运维人员由于操作不当带来的失误,导致备份不完整、配置文件无法恢复。此外,由于缺乏有效的版本管理工具,造成配置文件的各个版本不可追溯、重要版本丢失的问题。
3、因此,需要一种面向多集群的具备可靠性、版本管理能力的配置同步方法。
技术实现思路
1、针对现有技术中存在的问题,本申请提供了一种基于git的配置同步方法及系统。本申请提出的方案在客户端发出请求到配置服务端,配置服务端变更配置文件后,将变更后的配置文件发送给gitlab仓库做版本管理,从gitlab仓库拉取的最新配置文件进行合法性验证,在最新配置文件合法的情况下完成配置更新和下发,保证了配置变更的可靠性和配置文件的有效版本管理。
2、根据本申请的第一个方面,提出一种基于git的配置同步方法,应用于配置服务端,包括:
3、接收客户端发送的变更参数;
4、根据所述变更参数生成变更后的配置文件;
5、将所述变更后的配置文件上传到gitlab仓库;
6、拉取所述gitlab仓库中的最新配置文件,生成第一临时配置文件;
7、根据所述变更参数校验所述第一临时配置文件的合法性;
8、在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。
9、根据一些实施例,所述变更参数包括第一变更动作和第一变更文件名。
10、根据一些实施例,所述根据变更参数校验所述第一临时配置文件的合法性包括:
11、比较所述第一临时配置文件和所述第一当前配置文件,获得第二变更动作和第二变更文件名;
12、在所述第二变更动作、所述第二变更文件名和所述第一变更动作、所述第一变更文件名分别相同的情况下,确定所述第一临时配置文件合法。
13、根据一些实施例,所述第一变更动作和所述第二变更动作包括增加、删除和编辑中的一种或多种。
14、根据一些实施例,一种基于git的配置同步方法还包括:
15、在所述第一临时配置文件不合法的情况下,退出与所述客户端同步的过程。
16、根据一些实施例,一种基于git的配置同步方法还包括:
17、在所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件之前,备份所述第一当前配置文件;
18、在同步失败的情况下,将所备份的第一当前配置文件作为当前使用的配置文件。
19、根据本申请的第二个方面,提出一种基于git的配置同步装置,包括接收模块、变更模块、上传模块、拉取模块、校验模块和覆盖模块,其中:
20、所述接收模块用于接收客户端发送的变更参数;
21、所述变更模块用于根据所述变更参数生成变更后的配置文件;
22、所述上传模块用于将所述变更后的配置文件上传到gitlab仓库;
23、所述拉取模块用于拉取所述gitlab仓库中的最新配置文件,生成第一临时配置文件;
24、所述校验模块用于根据所述变更参数校验所述第一临时配置文件的合法性;
25、所述覆盖模块用于在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。
26、根据本申请的第三个方面,提出一种基于git的配置同步系统,包括客户端、配置服务端、gitlab仓库和同步服务端,其特征在于,
27、所述配置服务端用于执行如本申请第一个方面所述的方法;
28、所述客户端用于变更配置文件,将变更后的配置文件上传到gitlab仓库中,记录变更参数,并将所述变更参数发送到所述配置服务端;
29、所述gitlab仓库用于接收配置服务端发送的变更的配置文件,存放所述配置服务端配置文件的多个版本,响应于所述配置服务端的拉取请求,将所述拉取请求对应的配置文件发送给所述配置服务端,响应于所述同步服务端的拉取请求,将最新的配置文件发送给所述同步服务端;
30、所述同步服务端用于接收所述配置服务端下发的第二临时配置文件,将所述第二临时配置文件覆盖所述同步服务端的第二当前配置文件。
31、根据一些实施例,所述同步服务端或所述配置服务端还用于重启,以完成配置同步。
32、根据一些实施例,所述同步服务端还用于:
33、在所述第二临时配置文件覆盖所述第二当前配置文件之前,备份所述第二当前配置文件;
34、在所述同步服务端重启失败的情况下,将备份的配置文件作为当前使用的配置文件。
35、根据本申请的第四个方面,提出一种电子设备,包括:
36、处理器;
37、存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如本申请第一个方面所述的方法。
38、根据本申请的第五个方面,提出一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如本申请第一个方面所述的方法。
39、本申请提出的一种基于git的配置同步方法及系统,通过配置服务端变更配置文件,根据变更参数验证从gitlab仓库获取的最新配置文件的合法性,同时同步服务端在配置变更时直接从gitlab仓库拉取最新的配置文件,增强了配置变更的可靠性以及系统内配置的统一性。本申请的方案通过git进行配置文件的版本管理和配置文件的获取,保证了配置文件的有效版本管理。根据本申请提出的方案,能够规避不同的运维人员人工操作带来的配置文件备份不完整、变更不可靠的问题。
1.一种基于git的配置同步方法,应用于配置服务端,包括:
2.如权利要求1所述的方法,其特征在于,所述变更参数包括第一变更动作和第一变更文件名。
3.如权利要求2所述的方法,其特征在于,所述根据变更参数校验所述第一临时配置文件的合法性包括:
4.如权利要求3所述的方法,其特征在于,所述第一变更动作和所述第二变更动作包括增加、删除和编辑中的一种或多种。
5.如权利要求1所述的方法,其特征在于,还包括:
6.如权利要求1所述的方法,其特征在于,还包括:
7.一种基于git的配置同步装置,包括接收模块、变更模块、上传模块、拉取模块、校验模块和覆盖模块,其中:
8.一种基于git的配置同步系统,包括客户端、配置服务端、gitlab仓库和同步服务端,其特征在于,
9.如权利要求8所述的系统,其特征在于,所述同步服务端或所述配置服务端还用于重启,以完成配置同步。
10.如权利要求9所述的系统,其特征在于,所述同步服务端还用于:
11.一种电子设备,包括:
12.一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如权利要求1-6中任一项所述的方法。