CN116192878B - 一种基于Git的配置同步方法及*** - Google Patents
一种基于Git的配置同步方法及*** Download PDFInfo
- Publication number
- CN116192878B CN116192878B CN202310467360.1A CN202310467360A CN116192878B CN 116192878 B CN116192878 B CN 116192878B CN 202310467360 A CN202310467360 A CN 202310467360A CN 116192878 B CN116192878 B CN 116192878B
- Authority
- CN
- China
- Prior art keywords
- configuration file
- configuration
- change
- server
- temporary
- 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.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出的一种基于Git的配置同步方法及***,应用于配置服务端的方法包括:接收客户端发送的变更参数;根据所述变更参数生成变更后的配置文件;将所述变更后的配置文件上传到GitLab仓库;拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件;根据所述变更参数校验所述第一临时配置文件的合法性;在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。本申请提出的方案根据变更参数验证从GitLab仓库获取的最新配置文件的合法性,通过GitLab仓库进行配置文件的版本管理和配置文件的获取,保证了配置文件的有效版本管理。根据本申请提出的方案,能够规避不同运维人员人工操作带来的配置文件备份不完整、变更不可靠的问题。
Description
技术领域
本申请涉及配置文件同步领域,尤其是涉及一种基于Git的配置同步方法及***。
背景技术
随着互联网技术的发展,客户-服务器模式(Client-server model)得到广泛应用。在这种模式下,传统的客户端的配置更新过程一般采用TCP长连接或HTTP短连接等,具体实施过程为客户端定时的与服务端进行网络通信,每次从服务端拉取最新的配置,进行本地更新。
然而,传统的配置同步方法存在诸多弊端,其中包括多集群内配置更新的可靠性以及版本管理问题。在对多集群***进行配置更新时,往往会出现不同的运维人员由于操作不当带来的失误,导致备份不完整、配置文件无法恢复。此外,由于缺乏有效的版本管理工具,造成配置文件的各个版本不可追溯、重要版本丢失的问题。
因此,需要一种面向多集群的具备可靠性、版本管理能力的配置同步方法。
发明内容
针对现有技术中存在的问题,本申请提供了一种基于Git的配置同步方法及***。本申请提出的方案在客户端发出请求到配置服务端,配置服务端变更配置文件后,将变更后的配置文件发送给GitLab仓库做版本管理,从GitLab仓库拉取的最新配置文件进行合法性验证,在最新配置文件合法的情况下完成配置更新和下发,保证了配置变更的可靠性和配置文件的有效版本管理。
根据本申请的第一个方面,提出一种基于Git的配置同步方法,应用于配置服务端,包括:
接收客户端发送的变更参数;
根据所述变更参数生成变更后的配置文件;
将所述变更后的配置文件上传到GitLab仓库;
拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件;
根据所述变更参数校验所述第一临时配置文件的合法性;
在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。
根据一些实施例,所述变更参数包括第一变更动作和第一变更文件名。
根据一些实施例,所述根据变更参数校验所述第一临时配置文件的合法性包括:
比较所述第一临时配置文件和所述第一当前配置文件,获得第二变更动作和第二变更文件名;
在所述第二变更动作、所述第二变更文件名和所述第一变更动作、所述第一变更文件名分别相同的情况下,确定所述第一临时配置文件合法。
根据一些实施例,所述第一变更动作和所述第二变更动作包括增加、删除和编辑中的一种或多种。
根据一些实施例,一种基于Git的配置同步方法还包括:
在所述第一临时配置文件不合法的情况下,退出与所述客户端同步的过程。
根据一些实施例,一种基于Git的配置同步方法还包括:
在所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件之前,备份所述第一当前配置文件;
在同步失败的情况下,将所备份的第一当前配置文件作为当前使用的配置文件。
根据本申请的第二个方面,提出一种基于Git的配置同步装置,包括接收模块、变更模块、上传模块、拉取模块、校验模块和覆盖模块,其中:
所述接收模块用于接收客户端发送的变更参数;
所述变更模块用于根据所述变更参数生成变更后的配置文件;
所述上传模块用于将所述变更后的配置文件上传到GitLab仓库;
所述拉取模块用于拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件;
所述校验模块用于根据所述变更参数校验所述第一临时配置文件的合法性;
所述覆盖模块用于在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。
根据本申请的第三个方面,提出一种基于Git的配置同步***,包括客户端、配置服务端、GitLab仓库和同步服务端,其特征在于,
所述配置服务端用于执行如本申请第一个方面所述的方法;
所述客户端用于变更配置文件,将变更后的配置文件上传到GitLab仓库中,记录变更参数,并将所述变更参数发送到所述配置服务端;
所述GitLab仓库用于接收配置服务端发送的变更的配置文件,存放所述配置服务端配置文件的多个版本,响应于所述配置服务端的拉取请求,将所述拉取请求对应的配置文件发送给所述配置服务端,响应于所述同步服务端的拉取请求,将最新的配置文件发送给所述同步服务端;
所述同步服务端用于接收所述配置服务端下发的第二临时配置文件,将所述第二临时配置文件覆盖所述同步服务端的第二当前配置文件。
根据一些实施例,所述同步服务端或所述配置服务端还用于重启,以完成配置同步。
根据一些实施例,所述同步服务端还用于:
在所述第二临时配置文件覆盖所述第二当前配置文件之前,备份所述第二当前配置文件;
在所述同步服务端重启失败的情况下,将备份的配置文件作为当前使用的配置文件。
根据本申请的第四个方面,提出一种电子设备,包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如本申请第一个方面所述的方法。
根据本申请的第五个方面,提出一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如本申请第一个方面所述的方法。
本申请提出的一种基于Git的配置同步方法及***,通过配置服务端变更配置文件,根据变更参数验证从GitLab仓库获取的最新配置文件的合法性,同时同步服务端在配置变更时直接从GitLab仓库拉取最新的配置文件,增强了配置变更的可靠性以及***内配置的统一性。本申请的方案通过Git进行配置文件的版本管理和配置文件的获取,保证了配置文件的有效版本管理。根据本申请提出的方案,能够规避不同的运维人员人工操作带来的配置文件备份不完整、变更不可靠的问题。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图,而并不超出本申请要求保护的范围。
图1为本申请的基于Git的配置同步方法应用于配置服务端的步骤流程图;
图2为本申请的基于Git的配置同步装置的示意图;
图3为本申请的基于Git的配置同步***的结构示意图;
图4为本申请提供的一种电子设备的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1为本申请的基于Git的配置同步方法应用于配置服务端的步骤流程图。
步骤S101,接收客户端发送的变更参数。
步骤S102,根据所述变更参数生成变更后的配置文件。
在一些具体实施例中,客户端发起变更请求,并将变更参数记录发送给配置服务端。在一些具体实施例中,配置服务端为包括一个或多个服务器的***。在一些具体实施例中,客户端包括可视化操作平台,在客户端的可视化操作平台上发起请求和发送变更参数给配置服务端。在一些具体实施例中,配置服务端接收客户端发送的变更参数。
在一些具体实施例中,客户端和服务端通过互联网进行通信。在一些具体实施例中,变更参数包括第一变更动作和第一变更文件名。在一些具体实施例中,第一变更动作包括增加、删除和编辑中的一种或多种。在一些具体实施例中,配置服务端根据变更参数生成变更后的配置文件。
步骤S103,将所述变更后的配置文件上传到GitLab仓库。
步骤S104,拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件。
在一些具体实施例中,GitLab仓库中包括与当前的配置服务端对应的配置文件仓库地址。在一些具体实施例中,GitLab仓库中的配置文件仓库地址中存放所有历史版本的配置文件。在一些具体实施例中,GitLab仓库响应于配置服务端发送的拉取配置文件的请求,将最新配置文件发送给配置服务端。在一些具体实施例中,配置服务端接收GitLab仓库发送的最新配置文件。在一些具体实施例中,配置服务端生成临时目录地址,将接收到的最新配置文件保存到临时目录下,生成第一临时配置文件。
步骤S105,根据所述变更参数校验所述第一临时配置文件的合法性。
在一些具体实施例中,变更参数包括第一变更动作和第一变更文件名。在一些具体实施例中,比较临时配置文件和当前配置文件,获得第二变更动作和第二变更文件名。在一些具体实施例中,第一变更动作和第二变更动作包括增加、删除和编辑中的一种或多种。
在一些具体实施例中,通过md5值(Message-Digest Algorithm,消息摘要算法)进行临时配置文件和当前配置文件的比较。在一些具体实施例中,根据所述临时配置文件的md5值生成第一集合,根据所述当前配置文件的md5值生成第二集合。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目多一个,并且第二集合的元素都属于第一集合,第二变更动作为增加,第二变更文件名为第一集合中不属于第二集合的元素所对应的文件名。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目少一个,并且第一集合的元素都属于第二集合,第二变更动作为删除,第二变更文件名为第二集合中不属于第一集合的元素所对应的文件名。在一些具体实施例中,第二集合的元素数等于第一集合的元素数,并且第一集合和第二集合仅存在一个不同元素,第二变更动作为编辑,第二变更文件名为不同元素对应的文件名。
在一些具体实施例中,在第二变更动作、第二变更文件名和第一变更动作、第一变更文件名分别相同的情况下,确定临时配置文件合法。
在一些具体实施例中,根据所述临时配置文件的md5值生成第一集合,根据所述当前配置文件的md5值生成第二集合。在一些具体实施例中,第一集合的元素数和第二集合的元素数相差大于一,临时配置文件不合法。在一些具体实施例中,第一集合的元素数等于第二集合的元素数,并且第一集合和第二集合存在大于一个的不同元素,临时配置文件不合法。
在一些具体实施例中,设置当前允许变更的最大文件数量为N个,其中N为正整数。在一些具体实施例中,根据所述临时配置文件的md5值生成第一集合,根据所述当前配置文件的md5值生成第二集合。在一些具体实施例中,第一集合的元素数目和第二集合的元素数目的差值大于N,临时配置文件不合法。在一些具体实施例中,第一集合的元素数目等于第二集合的元素数目,并且第一集合和第二集合存在大于N个的不同元素,临时配置文件不合法。
在一些具体实施例中,第一集合和第二集合的差异元素数目为M个,其中M<=N。在一些具体实施例中,变更参数包括M个变更文件名及变更文件所对应的变更动作。在一些具体实施例中,变更参数包括每个差异元素对应的变更动作和变更文件名组成的列表。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目多M个,并且第二集合的元素都属于第一集合,变更文件名为第一集合中不属于第二集合的元素所对应的文件名,对应的变更动作为增加。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目少M个,其中M<=N,并且第一集合的元素都属于第二集合,变更文件名为第二集合中不属于第一集合的元素所对应的文件名,对应的变更动作为删除。在一些具体实施例中,第二集合的元素数目等于第一集合的元素数目,第一集合和第二集合存在M个不同元素,其中M<=N,M个不同元素的文件名在第一集合和第二集合中一一对应,变更文件名为M个不同元素对应的文件名,对应的变更动作为编辑。
在一些具体实施例中,设置当前允许变更的最大文件数量为N个,其中N为正整数。在一些具体实施例中,第一集合的元素数目等于第二集合的元素数目,第一集合和第二集合存在M个不同元素,在的情况下,临时配置文件合法。在一些具体实施例中,M个不同元素中包括A个第一类元素,B个第二类元素和C个第三类元素,在A、B、C为满足、/>、/>、/>的正整数的情况下,临时配置文件合法。
在一些具体实施例中,第一类元素为第一集合中不属于第二集合、并且元素对应的文件名也不属于第二集合中元素对应的文件名的元素,这A个元素对应的变更动作为增加,变更文件名为第一集合中的A个元素对应的文件名。在一些具体实施例中,第二类元素包括第二集合中不属于第一集合、并且元素对应的文件名也不属于第一集合中元素对应的文件名的元素,这B个元素对应的变更动作为删除,对应的变更文件名为第二集合中的B个元素对应的文件名。在一些具体实施例中,第三类元素包括第二集合中不属于第一集合、并且元素对应的文件名都能和第一集合中元素对应的文件名一一对应的元素,这C个元素对应的变更动作为编辑,对应的变更文件名为第二集合中C个元素对应的文件名。在一些具体实施例中,变更参数为每个第一类元素、第二类元素和第三类元素对应的变更动作和变更文件名组成的列表。
步骤S106,在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。
步骤S107,在所述第一临时配置文件不合法的情况下,退出与所述客户端同步的过程。
在一些具体实施例中,临时配置文件合法,配置服务端将临时配置文件覆盖配置服务端的当前配置文件。在一些具体实施例中,临时配置文件不合法,退出此次同步过程。
步骤S108,在所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件之前,备份所述第一当前配置文件;
步骤S109,在同步失败的情况下,将所备份的第一当前配置文件作为当前使用的配置文件。
在一些具体实施例中,临时配置文件合法,在临时配置文件覆盖配置服务端的当前配置文件之前,备份当前配置文件。在确认临时配置文件合法之后,覆盖当前配置之前,备份当前配置文件,避免因同步过程中出现问题导致的配置文件丢失、缺损,从而保证配置服务端的正常运行。
本申请提出的一种基于Git的配置同步方法,通过配置服务端变更配置文件,根据变更参数验证从GitLab仓库获取的最新配置文件的合法性,同步服务端在配置变更时直接从GitLab仓库拉取最新的配置文件,增强了配置变更的可靠性以及***内配置的统一性。本申请的方案通过Git进行配置文件的版本管理和配置文件的获取,保证了配置文件的有效版本管理。根据本申请提出的方案,能够规避不同的运维人员人工操作带来的配置文件备份不完整、变更不可靠的问题。
图2为本申请的基于Git的配置同步装置的示意图。
如图2所示,本申请提出的一种基于Git的配置同步装置包括接收模块、变更模块、上传模块、拉取模块、校验模块和覆盖模块。
接收模块用于接收客户端发送的变更参数。
变更模块用于根据所述变更参数生成变更后的配置文件。
在一些具体实施例中,客户端发起变更请求,并将变更参数记录发送给配置服务端。在一些具体实施例中,配置服务端为包括一个或多个服务器的***。在一些具体实施例中,客户端包括可视化操作平台,在客户端的可视化操作平台上发起请求和发送变更参数给配置服务端。在一些具体实施例中,配置服务端接收客户端发送的变更参数。
在一些具体实施例中,客户端和服务端通过互联网进行通信。在一些具体实施例中,变更参数包括第一变更动作和第一变更文件名。在一些具体实施例中,第一变更动作包括增加、删除和编辑中的一种或多种。在一些具体实施例中,配置服务端根据变更参数生成变更后的配置文件。
上传模块用于将所述变更后的配置文件上传到GitLab仓库。
拉取模块用于拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件。
在一些具体实施例中,GitLab仓库中包括与当前的配置服务端对应的配置文件仓库地址。在一些具体实施例中,GitLab仓库中的配置文件仓库地址中存放所有历史版本的配置文件。在一些具体实施例中,GitLab仓库响应于配置服务端发送的拉取配置文件的请求,将最新配置文件发送给配置服务端。在一些具体实施例中,配置服务端接收GitLab仓库发送的最新配置文件。在一些具体实施例中,配置服务端生成临时目录地址,将接收到的最新配置文件保存到临时目录下,生成第一临时配置文件。
校验模块用于根据所述变更参数校验所述第一临时配置文件的合法性。
在一些具体实施例中,变更参数包括第一变更动作和第一变更文件名。在一些具体实施例中,比较临时配置文件和当前配置文件,获得第二变更动作和第二变更文件名。在一些具体实施例中,第一变更动作和第二变更动作包括增加、删除和编辑中的一种或多种。
在一些具体实施例中,通过md5值(Message-Digest Algorithm,消息摘要算法)进行临时配置文件和当前配置文件的比较。在一些具体实施例中,根据所述临时配置文件的md5值生成第一集合,根据所述当前配置文件的md5值生成第二集合。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目多一个,并且第二集合的元素都属于第一集合,第二变更动作为增加,第二变更文件名为第一集合中不属于第二集合的元素所对应的文件名。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目少一个,并且第一集合的元素都属于第二集合,第二变更动作为删除,第二变更文件名为第二集合中不属于第一集合的元素所对应的文件名。在一些具体实施例中,第二集合的元素数等于第一集合的元素数,并且第一集合和第二集合仅存在一个不同元素,第二变更动作为编辑,第二变更文件名为不同元素对应的文件名。
在一些具体实施例中,在第二变更动作、第二变更文件名和第一变更动作、第一变更文件名分别相同的情况下,确定临时配置文件合法。
在一些具体实施例中,根据所述临时配置文件的md5值生成第一集合,根据所述当前配置文件的md5值生成第二集合。在一些具体实施例中,第一集合的元素数和第二集合的元素数相差大于一,临时配置文件不合法。在一些具体实施例中,第一集合的元素数等于第二集合的元素数,并且第一集合和第二集合存在大于一个的不同元素,临时配置文件不合法。
在一些具体实施例中,设置当前允许变更的最大文件数量为N个,其中N为正整数。在一些具体实施例中,根据所述临时配置文件的md5值生成第一集合,根据所述当前配置文件的md5值生成第二集合。在一些具体实施例中,第一集合的元素数目和第二集合的元素数目的差值大于N,临时配置文件不合法。在一些具体实施例中,第一集合的元素数目等于第二集合的元素数目,并且第一集合和第二集合存在大于N个的不同元素,临时配置文件不合法。
在一些具体实施例中,第一集合和第二集合的差异元素数目为M个,其中M<=N。在一些具体实施例中,变更参数包括M个变更文件名及变更文件所对应的变更动作。在一些具体实施例中,变更参数包括每个差异元素对应的变更动作和变更文件名组成的列表。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目多M个,并且第二集合的元素都属于第一集合,变更文件名为第一集合中不属于第二集合的元素所对应的文件名,对应的变更动作为增加。在一些具体实施例中,第一集合的元素数目比第二集合的元素数目少M个,其中M<=N,并且第一集合的元素都属于第二集合,变更文件名为第二集合中不属于第一集合的元素所对应的文件名,对应的变更动作为删除。在一些具体实施例中,第二集合的元素数目等于第一集合的元素数目,第一集合和第二集合存在M个不同元素,其中M<=N,M个不同元素的文件名在第一集合和第二集合中一一对应,变更文件名为M个不同元素对应的文件名,对应的变更动作为编辑。
在一些具体实施例中,设置当前允许变更的最大文件数量为N个,其中N为正整数。在一些具体实施例中,第一集合的元素数目等于第二集合的元素数目,第一集合和第二集合存在M个不同元素,在的情况下,临时配置文件合法。在一些具体实施例中,M个不同元素中包括A个第一类元素,B个第二类元素和C个第三类元素,在A、B、C为满足、/>、/>、/>的正整数的情况下,临时配置文件合法。
在一些具体实施例中,第一类元素为第一集合中不属于第二集合、并且元素对应的文件名也不属于第二集合中元素对应的文件名的元素,这A个元素对应的变更动作为增加,变更文件名为第一集合中的A个元素对应的文件名。在一些具体实施例中,第二类元素包括第二集合中不属于第一集合、并且元素对应的文件名也不属于第一集合中元素对应的文件名的元素,这B个元素对应的变更动作为删除,对应的变更文件名为第二集合中的B个元素对应的文件名。在一些具体实施例中,第三类元素包括第二集合中不属于第一集合、并且元素对应的文件名都能和第一集合中元素对应的文件名一一对应的元素,这C个元素对应的变更动作为编辑,对应的变更文件名为第二集合中C个元素对应的文件名。在一些具体实施例中,变更参数为每个第一类元素、第二类元素和第三类元素对应的变更动作和变更文件名组成的列表。
覆盖模块用于在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。
在一些具体实施例中,临时配置文件合法,配置服务端将临时配置文件覆盖配置服务端的当前配置文件。
图3为本申请的基于Git的配置同步***的结构示意图。
如图3所示,基于Git的配置同步***包括客户端、配置服务端、GitLab仓库和同步服务端。
在一些具体实施例中,客户端发起变更请求,并将变更参数记录发送给配置服务端。在一些具体实施例中,配置服务端为包括一个或多个服务器的***。在一些具体实施例中,客户端包括可视化操作平台,在客户端的可视化操作平台上发起请求和发送变更参数给配置服务端。在一些具体实施例中,配置服务端接收客户端发送的变更参数。
在一些具体实施例中,配置服务端将变更的配置文件上传到GitLab仓库。在一些具体实施例中,配置服务端拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件。在一些具体实施例中,配置服务端通过变更参数校验第一临时配置文件的合法性。在一些具体实施例中,第一临时配置文件合法,配置服务端将临时配置文件覆盖配置服务端的当前配置文件。在一些具体实施例中,配置服务端重启,完成配置的更新。在一些具体实施例中,配置服务端重启失败,将备份的配置文件作为当前使用的配置文件。
在一些具体实施例中,第一配置文件合法,同步服务端接收GitLab仓库中的最新配置文件,生成第二临时配置文件。在一些具体实施例中,同步服务端将接收到的第二临时配置文件覆盖同步服务端的第二当前配置文件。在一些具体实施例中,在第二临时配置文件覆盖同步服务端的第二当前配置文件之前,同步服务端备份第二当前配置文件。在一些具体实施例中,同步服务端重启,完成配置的更新。在一些具体实施例中,同步服务端重启失败,将备份的第二当前配置文件作为当前使用的配置文件。
图4为本申请提供的一种电子设备的结构图,包括处理器以及存储器。存储器存储有计算机指令,当计算机指令被处理器执行时,使得处理器执行所述计算机指令从而实现如图1所示的方法以及细化方案。
应该理解,上述的装置实施例仅是示意性的,本发明披露的装置还可通过其它的方式实现。例如,上述实施例中所述单元/模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如,多个单元、模块或组件可以结合,或者可以集成到另一个***,或一些特征可以忽略或不执行。
另外,若无特别说明,在本发明各个实施例中的各功能单元/模块可以集成在一个单元/模块中,也可以是各个单元/模块单独物理存在,也可以两个以上单元/模块集成在一起。上述集成的单元/模块既可以采用硬件的形式实现,也可以采用软件程序模块的形式实现。
所述集成的单元/模块如果以硬件的形式实现时,该硬件可以是数字电路,模拟电路等等。硬件结构的物理实现包括但不局限于晶体管,忆阻器等等。若无特别说明,所述处理器或芯片可以是任何适当的硬件处理器,比如CPU、GPU、FPGA、DSP和ASIC等等。若无特别说明,所述片上缓存、片外内存、存储器可以是任何适当的磁存储介质或者磁光存储介质,比如,阻变式存储器RRAM(Resistive Random Access Memory)、动态随机存取存储器DRAM(Dynamic Random Access Memory)、静态随机存取存储器SRAM(Static Random-AccessMemory)、增强动态随机存取存储器EDRAM(Enhanced Dynamic Random Access Memory)、高带宽内存HBM(High-Bandwidth Memory)、混合存储立方 HMC(Hybrid Memory Cube)等等。
所述集成的单元/模块如果以软件程序模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本披露各个实施例所述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本申请实施例还提供一种非瞬时性计算机存储介质,存储有计算机程序,当所述计算机程序被多个处理器执行时,使得所述处理器执行如图1所示的方法以及细化方案。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明仅用于帮助理解本申请的方法及其核心思想。同时,本领域技术人员依据本申请的思想,基于本申请的具体实施方式及应用范围上做出的改变或变形之处,都属于本申请保护的范围。综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种基于Git的配置同步方法,应用于配置服务端,包括:
接收客户端发送的变更参数,所述变更参数包括第一变更动作和第一变更文件名;
根据所述变更参数生成变更后的配置文件;
将所述变更后的配置文件上传到GitLab仓库;
拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件;
根据所述变更参数校验所述第一临时配置文件的合法性,包括:比较所述第一临时配置文件和第一当前配置文件,获得第二变更动作和第二变更文件名;在所述第二变更动作、所述第二变更文件名和所述第一变更动作、所述第一变更文件名分别相同的情况下,确定所述第一临时配置文件合法;
在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件。
2.如权利要求1所述的方法,其特征在于,所述第一变更动作和所述第二变更动作包括增加、删除和编辑中的一种或多种。
3.如权利要求1所述的方法,其特征在于,还包括:
在所述第一临时配置文件不合法的情况下,退出与所述客户端同步的过程。
4.如权利要求1所述的方法,其特征在于,还包括:
在所述第一临时配置文件覆盖所述配置服务端的第一当前配置文件之前,备份所述第一当前配置文件;
在同步失败的情况下,将所备份的第一当前配置文件作为当前使用的配置文件。
5.一种基于Git的配置同步装置,包括接收模块、变更模块、上传模块、拉取模块、校验模块和覆盖模块,其中:
所述接收模块用于接收客户端发送的变更参数,所述变更参数包括第一变更动作和第一变更文件名;
所述变更模块用于根据所述变更参数生成变更后的配置文件;
所述上传模块用于将所述变更后的配置文件上传到GitLab仓库;
所述拉取模块用于拉取所述GitLab仓库中的最新配置文件,生成第一临时配置文件;
所述校验模块用于根据所述变更参数校验所述第一临时配置文件的合法性,包括:比较所述第一临时配置文件和第一当前配置文件,获得第二变更动作和第二变更文件名;在所述第二变更动作、所述第二变更文件名和所述第一变更动作、所述第一变更文件名分别相同的情况下,确定所述第一临时配置文件合法;
所述覆盖模块用于在所述第一临时配置文件合法的情况下,将所述第一临时配置文件覆盖配置服务端的第一当前配置文件。
6.一种基于Git的配置同步***,包括客户端、配置服务端、GitLab仓库和同步服务端,其特征在于,
所述配置服务端用于执行如权利要求1-4任一者所述的方法;
所述客户端用于记录变更参数,并将所述变更参数发送到所述配置服务端;
所述GitLab仓库用于接收配置服务端发送的变更的配置文件,存放所述配置服务端配置文件的多个版本,响应于所述配置服务端的拉取请求,将所述拉取请求对应的配置文件发送给所述配置服务端,响应于所述同步服务端的拉取请求,将最新的配置文件发送给所述同步服务端;
所述同步服务端用于接收所述GitLab仓库下发的第二临时配置文件,将所述第二临时配置文件覆盖所述同步服务端的第二当前配置文件。
7.如权利要求6所述的***,其特征在于,所述同步服务端或所述配置服务端还用于重启,以完成配置同步。
8.如权利要求7所述的***,其特征在于,所述同步服务端还用于:
在所述第一临时配置文件覆盖所述第二当前配置文件之前,备份所述第二当前配置文件;
在所述同步服务端重启失败的情况下,将备份的配置文件作为当前使用的配置文件。
9.一种电子设备,包括:
处理器;
存储器,存储有计算机程序,当所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1-4中任一项所述的方法。
10.一种非瞬时性计算机可读存储介质,其上存储有计算机可读指令,当所述指令被处理器执行时,使得所述处理器执行如权利要求1-4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310467360.1A CN116192878B (zh) | 2023-04-27 | 2023-04-27 | 一种基于Git的配置同步方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310467360.1A CN116192878B (zh) | 2023-04-27 | 2023-04-27 | 一种基于Git的配置同步方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116192878A CN116192878A (zh) | 2023-05-30 |
CN116192878B true CN116192878B (zh) | 2023-07-18 |
Family
ID=86452644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310467360.1A Active CN116192878B (zh) | 2023-04-27 | 2023-04-27 | 一种基于Git的配置同步方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116192878B (zh) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840194A (zh) * | 2017-11-28 | 2019-06-04 | 网宿科技股份有限公司 | 一种配置文件的检测方法及*** |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111666081B (zh) * | 2020-04-30 | 2024-04-05 | 平安科技(深圳)有限公司 | 基于Git的项目版本发布方法、装置、设备及介质 |
CN113032050A (zh) * | 2021-04-21 | 2021-06-25 | 中国平安财产保险股份有限公司 | 配置中心访问方法、***、电子装置及存储介质 |
CN114385759B (zh) * | 2022-01-13 | 2024-04-16 | 平安科技(深圳)有限公司 | 配置文件的同步方法、装置、计算机设备及存储介质 |
CN115344300A (zh) * | 2022-08-15 | 2022-11-15 | 中国电信股份有限公司 | 分支流水线构建方法、装置、设备及存储介质 |
-
2023
- 2023-04-27 CN CN202310467360.1A patent/CN116192878B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109840194A (zh) * | 2017-11-28 | 2019-06-04 | 网宿科技股份有限公司 | 一种配置文件的检测方法及*** |
Also Published As
Publication number | Publication date |
---|---|
CN116192878A (zh) | 2023-05-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI724678B (zh) | 共識系統停機時間恢復 | |
TWI761879B (zh) | 用於在區塊鏈網路中刪除節點的系統和方法 | |
TWI729609B (zh) | 共識系統停機時間恢復 | |
CN111630826B (zh) | 共识***和方法 | |
CN107844386B (zh) | 一种数据备份、恢复方法及装置 | |
US8301600B1 (en) | Failover recovery in a distributed data store | |
US10810035B2 (en) | Deploying a cloud instance of a user virtual machine | |
CN108322533A (zh) | 基于操作日志的分布式集群节点间配置同步方法 | |
CN103853837B (zh) | Oracle全自动不停生产数据库的表级备份恢复方法 | |
US8533525B2 (en) | Data management apparatus, monitoring apparatus, replica apparatus, cluster system, control method and computer-readable medium | |
US8612799B2 (en) | Method and apparatus of backing up subversion repository | |
WO2012171345A1 (zh) | 临时故障时的数据修复方法及分布式缓存*** | |
WO2011022978A1 (zh) | 一种备份数据及回退数据的方法和网管服务器 | |
CN116192878B (zh) | 一种基于Git的配置同步方法及*** | |
CN107786650B (zh) | 一种存储介质和管理策略的同步方法、装置及*** | |
US9424362B2 (en) | Storing and publishing contents of a content store | |
CN117708242A (zh) | 一种GoldenDB数据库灾备同步关系的搭建方法及相关装置 | |
CN116389233A (zh) | 容器云管理平台主备切换***、方法、装置和计算机设备 | |
CN115617917B (zh) | 一种数据库集群多活控制的方法、装置、***和设备 | |
US11860894B2 (en) | Database management system data replication | |
US20230114368A1 (en) | Object metadata maintenance pertinent to object restoration | |
CN117130830A (zh) | 对象的数据恢复方法、装置、计算机设备及存储介质 | |
CN118069183A (zh) | 虚拟机镜像更新方法、装置、电子设备及可读存储介质 | |
CN116431393A (zh) | 本地复制对应多目标卷的数据处理方法、装置和设备 | |
CN115408017A (zh) | 一种涉密计算机操作***安装方法、***、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |