CN114385759B - 配置文件的同步方法、装置、计算机设备及存储介质 - Google Patents

配置文件的同步方法、装置、计算机设备及存储介质 Download PDF

Info

Publication number
CN114385759B
CN114385759B CN202210037252.6A CN202210037252A CN114385759B CN 114385759 B CN114385759 B CN 114385759B CN 202210037252 A CN202210037252 A CN 202210037252A CN 114385759 B CN114385759 B CN 114385759B
Authority
CN
China
Prior art keywords
configuration file
request
configuration
modification
file
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
Application number
CN202210037252.6A
Other languages
English (en)
Other versions
CN114385759A (zh
Inventor
贾之超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ping An Technology Shenzhen Co Ltd
Original Assignee
Ping An Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Ping An Technology Shenzhen Co Ltd filed Critical Ping An Technology Shenzhen Co Ltd
Priority to CN202210037252.6A priority Critical patent/CN114385759B/zh
Publication of CN114385759A publication Critical patent/CN114385759A/zh
Application granted granted Critical
Publication of CN114385759B publication Critical patent/CN114385759B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/275Synchronous replication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/252Integrating or interfacing systems involving database management systems between a Database Management System and a front-end application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computational Linguistics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请涉及数据处理技术领域,揭露一种配置文件的同步方法、装置、计算机设备及存储介质,其中方法包括获取修改配置文件请求,并对修改配置文件请求对应的配置文件进行修改,将得到的修改后的配置文件存储于远端GitLab仓库中;定时拉取配置文件,并将配置文件存储于本地Git仓库中;将发生变更的配置文件作为待同步配置文件,以及对应的标志信息;对标志信息进行封装,生成查询请求,并通过查询请求获取IP地址列表,再将配置文件同步到IP地址列表中。本申请还涉及区块链技术,待同步配置文件存储于区块链中。本申请通过定时获取和同步配置文件,有利于提高大规模应用集群的配置文件同步准确度。

Description

配置文件的同步方法、装置、计算机设备及存储介质
技术领域
本申请涉及数据处理技术领域,尤其涉及一种配置文件的同步方法、装置、计算机设备及存储介质。
背景技术
大规模应用集群的配置文件管理是运维的一项重点工作,其中包含多个需求,包括配置文件如何统一管理,如何对接流程平台或CICD平台自动修改配置文件,如何可以让修改了的配置文件快速并准确的同步到对应应用集群中的每台服务器上,以及如何对接到Kubernetes中。其中对大规模应用集群的配置文件的同步是当中一项较为重要的任务。
现有的配置文件同步方法是使用Puppet+GitLab的模式管理的,Git负责记录文件版本,Puppet负责同步配置到服务器。Puppet的C/S架构使得客户端也需要安装PuppetAgent,而且需要管理SSL证书,Puppet配置文件等,导致管理复杂,容易出现配置文件不能正常同步,从而导致集群间配置文件不一致的情况,进而导致配置文件的同步准确度较低。现亟需一种提高大规模应用集群的配置文件同步准确度的方法。
发明内容
本申请实施例的目的在于提出一种配置文件的同步方法、装置、计算机设备及存储介质,以提高大规模应用集群的配置文件同步的准确度。
为了解决上述技术问题,本申请实施例提供一种配置文件的同步方法,包括:
获取修改配置文件请求,并基于所述修改配置文件请求,对所述修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将所述修改后的配置文件存储于远端GitLab仓库中,其中,所述修改后的配置文件包括更改标识;
通过定时任务,定时从所述远端GitLab仓库中拉取配置文件,并将所述配置文件存储于本地Git仓库中;
在所述本地Git仓库中,若判定所述配置文件已发生变更,则将发生变更的配置文件作为待同步配置文件,以及获取所述待同步配置文件对应的标志信息,其中,所述标志信息包括文件所属模块、文件所属环境以及文件所属应用;
对所述标志信息进行封装,生成查询请求,并通过所述查询请求向配置管理数据库进行查询,以获取所述配置管理数据库所返回的IP地址列表;
通过预设的备份工具,将所述配置文件同步到所述IP地址列表中。
为了解决上述技术问题,本申请实施例提供一种配置文件的同步装置,包括:
配置文件存储模块,用于获取修改配置文件请求,并基于所述修改配置文件请求,对所述修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将所述修改后的配置文件存储于远端GitLab仓库中,其中,所述修改后的配置文件包括更改标识;
配置文件拉取模块,用于通过定时任务,定时从所述远端GitLab仓库中拉取配置文件,并将所述配置文件存储于本地Git仓库中;
标志信息获取模块,用于在所述本地Git仓库中,若判定所述配置文件已发生变更,则将发生变更的配置文件作为待同步配置文件,以及获取所述待同步配置文件对应的标志信息,其中,所述标志信息包括文件所属模块、文件所属环境以及文件所属应用;
地址列表获取模块,用于对所述标志信息进行封装,生成查询请求,并通过所述查询请求向配置管理数据库进行查询,以获取所述配置管理数据库所返回的IP地址列表;
配置文件同步模块,用于通过预设的备份工具,将所述配置文件同步到所述IP地址列表中。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种计算机设备,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的配置文件的同步方法。
为解决上述技术问题,本发明采用的一个技术方案是:一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的配置文件的同步方法。
本发明实施例提供了一种配置文件的同步方法、装置、计算机设备及存储介质。其中,方法包括:获取修改配置文件请求,并基于修改配置文件请求,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将修改后的配置文件存储于远端GitLab仓库中,其中,修改后的配置文件包括更改标识;通过定时任务,定时从远端GitLab仓库中拉取配置文件,并将配置文件存储于本地Git仓库中;在本地Git仓库中,若判定配置文件已发生变更,则将发生变更的配置文件作为待同步配置文件,以及获取待同步配置文件对应的标志信息,其中,标志信息包括文件所属模块、文件所属环境以及文件所属应用;对标志信息进行封装,生成查询请求,并通过查询请求向配置管理数据库进行查询,以获取配置管理数据库所返回的IP地址列表;通过预设的备份工具,将配置文件同步到IP地址列表中。本发明实施例对配置文件的定时获取,和判断哪些配置文件需要更新,实现将更改过的配置文件作为待同步配置文件,再通过分析待同步配置文件的标志信息,获取对应的IP地址列表,使其待同步配置文件同步到对应的IP地址列表中,从而有利于提高大规模应用集群的配置文件同步准确度。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的配置文件的同步方法中子流程的一实现流程图;
图2是本申请实施例提供的配置文件的同步方法中子流程的又一实现流程图;
图3是本申请实施例提供的配置文件的同步方法中子流程的又一实现流程图;
图4是本申请实施例提供的配置文件的同步方法中子流程的又一实现流程图;
图5是本申请实施例提供的配置文件的同步方法中子流程的又一实现流程图;
图6是本申请实施例提供的配置文件的同步方法中子流程的又一实现流程图;
图7是本申请实施例提供的配置文件的同步方法中子流程的又一实现流程图;
图8是本申请实施例提供的配置文件的同步装置示意图;
图9是本申请实施例提供的计算机设备的示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
下面结合附图和实施方式对本发明进行详细说明。
需要说明的是,本申请实施例所提供的配置文件的同步方法一般由服务器执行,相应地,配置文件的同步装置一般配置于服务器中。
请参阅图1,图1示出了配置文件的同步方法的一种具体实施方式。
需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限,该方法包括如下步骤:
S1:获取修改配置文件请求,并基于修改配置文件请求,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将修改后的配置文件存储于远端GitLab仓库中。
具体的,在开发人员需要对配置文件进行修改时,开发人员向服务器发送修改配置文件请求,该修改配置文件请求中包括需要修改的配置文件和修改要求;在服务器获取到该修改配置文件请求后,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件;此时修改后的配置文件存储于客户本地Git中,为了后续便于修改后的配置文件的同步,将其存储于远端GitLab仓库中。
请参阅图2,图2示出了步骤S1的一种具体实施方式,详叙如下:
S11:获取修改配置文件请求,并对修改配置文件请求进行解析,以获取修改配置文件请求对应的配置文件和修改要求。
S12:基于修改要求,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件。
S13:执行预设的推送命令,将修改后的配置文件从客户本地Git仓库传输到远端GitLab仓库。
具体的,在获取到开发人员对修改配置文件请求后,本申请实施例对该修改配置文件进行解析,获取到需要修改的配置文件和修改要求,并基于修改要求,对需要修改的配置文件进行修改,从而得到修改后的配置文件,然后通过Git仓库变更的方式,将修改后的配置文件同步到客户本地Git仓库中,再执行预设的推送命令(Git Push),将修改后的配置文件从客户本地Git仓库传输到远端GitLab仓库中。并且每份修改后的配置文件都包括变更标识,在后续步骤中,可以基于该变更标识,可以识别出哪些配置文件是属于修改后的配置文件,以便对修改后的配置文件进行同步。
其中,GitLab是一个用于仓库管理***的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。在本实施例中,通过远端GitLab仓库存储修改后的配置文件,便于后续将修改后的配置文件同步到对应的服务集群中。
本实施例中,通过获取修改配置文件请求,并对修改配置文件请求进行解析,以获取修改配置文件请求对应的配置文件和修改要求,再基于修改要求,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,然后执行预设的推送命令,将修改后的配置文件从客户本地Git仓库传输到远端GitLab仓库,实现将修改的配置文件从客户本地Git仓库传输到远端GitLab仓库,便于后续通过定时任务拉取对应的配置文件,从而有利于提高配置文件同步的准确性。
请参阅图3,图3示出了步骤S1之前的一种具体实施方式,详叙如下:
S1A:获取新增配置文件请求,并对新增配置文件请求进行解析,以获取新增配置文件请求对应的文件路径。
S1B:基于文件路径,获取新增文件请求对应的配置文件,作为新增配置文件,其中,新增配置文件包括变更标识。
S1C:执行预设的推送命令,将新增配置文件从客户本地Git仓库传输到远端GitLab仓库。
具体的,本申请实施例不仅仅对修改后的配置文件进行同步,也需要获取新增的配置文件进行同步。所以在获取新增配置文件请求,并对新增配置文件请求进行解析,以获取新增配置文件请求对应的文件路径,再通过该文件路径从客户本地Git仓库中提取对应的新增配置文件,再执行预设的推送命令(Git Push),将修改后的配置文件从客户本地Git仓库传输到远端GitLab仓库中。并且每份新增配置文件都包括变更标识,在后续步骤中,可以基于该变更标识,可以识别出哪些配置文件是属于修改后的配置文件或是新增配置文件,以便对配置文件进行同步。进一步的,本申请实施例提供静态HTTP服务,开发人员可以下载配置文件,对配置文件进行修改,生成修改配置文件请求和新增配置文件请求。
本实施例中,通过获取新增配置文件请求,并对新增配置文件请求进行解析,以获取新增配置文件请求对应的文件路径,再基于文件路径,获取新增文件请求对应的配置文件,作为新增配置文件,然后执行预设的推送命令,将新增配置文件从客户本地Git仓库传输到远端GitLab仓库,实现对新增配置文件的传输,便于后续通过定时任务拉取对应的配置文件,从而有利于提高配置文件同步的准确性。
S2:通过定时任务,定时从远端GitLab仓库中拉取配置文件,并将配置文件存储于本地Git仓库中。
具体的,通过设置定时任务,定时执行Git Pull命令,从远端GitLab仓库中拉取配置文件,将拉取的配置文件存储于本地Git仓库中。需要说明的是,定时任务的设定时间根据实际情况进行设定,此处不做限定。在一具体实施例中,设定时间为10秒。
请参阅图4,图4示出了步骤S2之后的一种具体实施方式,详叙如下:
S2A:定时轮询远端应用,判断远端应用是否存在应用扩容情况,得到判断结果。
S2B:若判断结果为远端应用存在应用扩容情况,则获取客户端请求参数。
S2C:基于客户端请求参数,获取客户端请求参数对应的配置文件,作为待同步配置文件。
具体的,如果远端应用有扩容或特殊情况文件不一致,依靠定时任务是不会触发同步任务的,可以对外暴露一个应用程序服务接口(HTTP API),根据客户端请求参数执行同步任务。在本申请实施例中,通过定时轮询远端应用,判断远端应用是否存在应用扩容情况,若判断远端应用存在应用扩容情况,通过应用程序服务接口(HTTP API)获取客户端请求参数,再基于客户端请求参数,将客户端请求参数对应的配置文件进行同步。需要说明的是,定时轮询远端应用的时间根据实际情况进行设定,此处不做限定。在一具体实施例中,通过24小时轮询一次远端应用。
S3:在本地Git仓库中,若判定配置文件已发生变更,则将发生变更的配置文件作为待同步配置文件,以及获取待同步配置文件对应的标志信息。
其中,标志信息包括文件所属模块、文件所属环境以及文件所属应用。
请参阅图5,图5示出了步骤S3的一种具体实施方式,详叙如下:
S31:在本地Git仓库中,通过遍历的方式,判断配置文件是否包括更改标识。
S32:若配置文件包括更改标识,则判定配置文件发生变更,并获取发生更改的配置文件,作为待同步配置文件。
S33:通过对待同步配置文件对应路径进行切分,以获取配置文件的标志信息。
具体的,由于上述步骤已经实现了定时拉取配置文件,但是这些配置文件中包括没有修改或发生变化的配置文件、修改过的配置文件和新增配置文件,没有修改或发生变化的配置文件在之前就已经同步配置到相应的服务器集群中。本申请实施例主要将修改后的配置文件和新增的配置文件进行同步,所以在本地Git仓库中,先判断出哪些配置文件发生变更,判断的依据是配置文件是否包括更改标识,通过遍历本地Git仓库中的所有配置文件,获取具备更改标识的配置文件,将其作为待同步配置文件;然后再获取待同步文件的标注信息,其中,标注信息包括文件所属模块、文件所属环境以及文件所属应用,该标志信息用于获取对应的服务器IP地址,也即待同步配置文件需要同步到的地址信息。
本实施例中,在本地Git仓库中,通过遍历的方式,判断配置文件是否包括更改标识,若配置文件包括更改标识,则判定配置文件发生变更,并获取发生更改的配置文件,作为待同步配置文件,最后通过对待同步配置文件对应路径进行切分,以获取配置文件的标志信息,实现了对拉取的配置文件进行识别,判断出那些配置文件需要进行同步,确定待同步配置文件,有利于提高配置文件同步的准确度。
请参阅图6,图6示出了步骤S33的一种具体实施方式,详叙如下:
S331:获取待同步配置文件对应的绝对路径,作为目标绝对路径。
S332:通过预设的切分命令,识别目标绝对路径中的分隔符。
S333:基于分隔符对目标绝对路径进行切分,得到配置文件的标志信息。
具体的,每个待同步配置文件都有其对应的绝对路径,所以获取每个待同步配置文件的绝对路径,将其作为目标绝对路径;然后通过执行预设的切分命令,识别出目标绝对路径中的分隔符,再基于分隔符对目标绝对路径进行切分,从而得到文件所属模块、文件所属环境以及文件所属应用等标志信息。在一具体的实施中,绝对路径为C:\ProgramFiles(x86)\Common Files\microsoft shared\DevServer\10.0,识别出分隔符为“\”,根据该分隔符,将该绝对路径进行切分,从而得到标志信息。
本实施例中,通过获取待同步配置文件对应的绝对路径,作为目标绝对路径,再通过预设的切分命令,识别目标绝对路径中的分隔符,最后基于分隔符对目标绝对路径进行切分,得到配置文件的标志信息,实现对待同步配置文件对应路径的切分,有利于后续获取每个待同步配置文件对应的IP地址,从而有利于提高配置文件同步的准确度。
S4:对标志信息进行封装,生成查询请求,并通过查询请求向配置管理数据库进行查询,以获取配置管理数据库所返回的IP地址列表。
请参阅图7,图7示出了步骤S4的一种具体实施方式,详叙如下:
S41:对标志信息进行封装,生成查询请求。
S42:将查询请求发送到配置管理数据库进行查询,得到每个待同步配置文件的IP地址。
S43:将每个待同步配置文件的IP地址进行组合,得到IP地址列表。
具体的,由于可能存在多个配置文件要同步,所以将标记信息进行封装,生成查询请求,再将查询请求发送到配置管理数据库进行查询,得到每个待同步配置文件的IP地址;将每个待同步配置文件的IP地址进行组合,得到IP地址列表。本实施例中,通过标志信息生成查询请求,在基于查询请求获取到每个待同步配置文件的IP地址,在后续中,可以根据每个IP地址将对应的待同步配置文件同步到该地址,从而有利于提高配置文件同步的准确度。
其中,配置管理数据库是指Configuration Management database(CMDB),该配置管理数据库包含一个组织的IT服务使用的信息***的组件的所有相关信息以及这些组件之间的关系。上文中提到的信息***的组件也被称为配置项(configuration items,CI),一个配置项可以是任何可以想到的IT组件,包括软件、硬件、文件和人员,以及它们之间的结合体。在本申请实施例中,配置管理数据库存储有各个远端应用对应的IP地址,通过查询请求,可以获取到对应的远端应用的IP地址。
S5:通过预设的备份工具,将配置文件同步到IP地址列表中。
具体的,上述步骤已经获取到了需要同步到的服务器IP地址列表,将该IP地址作为目标端,通过预设的备份工具将配置文件同步到IP地址列表中。预设的备份工具可以为Rsync,该Rsync是linux***下的数据镜像备份工具,使用快速增量备份工具RemoteSync可以远程同步,支持本地复制,或者与其他SSH、Rsync主机同步。
由于现有的配置文件同步方法是使用Puppet+GitLab的模式管理的,Git负责记录文件版本,Puppet负责同步配置到服务器。Puppet的C/S架构使得客户端也需要安装PuppetAgent,而且需要管理SSL证书,Puppet配置文件等,导致管理复杂,容易出现配置文件不能正常同步,从而导致集群间配置文件不一致的情况,进而导致配置文件的同步准确度较低。而本申请实施例则是则是基于GitLab,进行配置文件的同步,不需要管理SSL证书,能够保证配置文件正常同步,使得集群间配置文件保持一致。
其中,Puppet是一种Linux、Unix、Windows平台的集中配置管理***,使用自有的Puppet描述语言,可管理配置文件、用户、Cron任务、软件包、***服务等。SSL(SecureSocket Layer)证书是数字证书的一种,类似于驾驶证、护照和营业执照的电子副本,因为配置在服务器上,也称为SSL服务器证书。C/S架构即Client-Server结构,也称为服务器-客户机,C/S架构通常采取两层结构,该服务器负责数据的管理,客户机负责完成与用户的交互任务。
本实施例中,获取修改配置文件请求,并基于修改配置文件请求,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将修改后的配置文件存储于远端GitLab仓库中,其中,修改后的配置文件包括更改标识;通过定时任务,定时从远端GitLab仓库中拉取配置文件,并将配置文件存储于本地Git仓库中;在本地Git仓库中,若判定配置文件已发生变更,则将发生变更的配置文件作为待同步配置文件,以及获取待同步配置文件对应的标志信息,其中,标志信息包括文件所属模块、文件所属环境以及文件所属应用;对标志信息进行封装,生成查询请求,并通过查询请求向配置管理数据库进行查询,以获取配置管理数据库所返回的IP地址列表;通过预设的备份工具,将配置文件同步到IP地址列表中。本发明实施例对配置文件的定时获取,和判断哪些配置文件需要更新,实现将更改过的配置文件作为待同步配置文件,再通过分析待同步配置文件的标志信息,获取对应的IP地址列表,使其待同步配置文件同步到对应的IP地址列表中,从而有利于提高大规模应用集群的配置文件同步准确度。
需要强调的是,为进一步保证上述待同步配置文件的私密和安全性,上述待同步配置文件还可以存储于一区块链的节点中。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
请参考图8,作为对上述图1所示方法的实现,本申请提供了一种配置文件的同步装置的一个实施例,该装置实施例与图1所示的方法实施例相对应,该装置具体可以应用于各种电子设备中。
如图8所示,本实施例的配置文件的同步装置包括:配置文件存储模块61、配置文件拉取模块62、标志信息获取模块63、地址列表获取模块64及配置文件同步模块65,其中:
配置文件存储模块61,用于获取修改配置文件请求,并基于修改配置文件请求,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将修改后的配置文件存储于远端GitLab仓库中,其中,修改后的配置文件包括更改标识;
配置文件拉取模块62,用于通过定时任务,定时从远端GitLab仓库中拉取配置文件,并将配置文件存储于本地Git仓库中;
标志信息获取模块63,用于在本地Git仓库中,若判定配置文件已发生变更,则将发生变更的配置文件作为待同步配置文件,以及获取待同步配置文件对应的标志信息,其中,标志信息包括文件所属模块、文件所属环境以及文件所属应用;
地址列表获取模块64,用于对标志信息进行封装,生成查询请求,并通过查询请求向配置管理数据库进行查询,以获取配置管理数据库所返回的IP地址列表;
配置文件同步模块65,用于通过预设的备份工具,将配置文件同步到IP地址列表中。
进一步的,配置文件存储模块61包括:
修改配置文件请求获取单元,用于获取修改配置文件请求,并对修改配置文件请求进行解析,以获取修改配置文件请求对应的配置文件和修改要求;
配置文件修改单元,用于基于修改要求,对修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件;
推送命令执行单元,用于执行预设的推送命令,将修改后的配置文件从客户本地Git仓库传输到远端GitLab仓库。
进一步的,配置文件存储模块61之前还包括:
新增配置文件请求获取模块,用于获取新增配置文件请求,并对新增配置文件请求进行解析,以获取新增配置文件请求对应的文件路径;
新增配置文件获取模块,用于基于文件路径,获取新增文件请求对应的配置文件,作为新增配置文件,其中,新增配置文件包括变更标识;
新增配置文件传输模块,用于执行预设的推送命令,将新增配置文件从客户本地Git仓库传输到远端GitLab仓库。
进一步的,配置文件拉取模块62之后还包括:
扩容情况判断模块,用于定时轮询远端应用,判断远端应用是否存在应用扩容情况,得到判断结果;
客户端请求参数获取模块,用于若判断结果为远端应用存在应用扩容情况,则获取客户端请求参数;
客户端请求参数处理模块,用于基于客户端请求参数,获取客户端请求参数对应的配置文件,作为待同步配置文件。
进一步的,标志信息获取模块63包括:
更改标识判断单元,用于在本地Git仓库中,通过遍历的方式,判断配置文件是否包括更改标识;
待同步配置文件确定单元,用于若配置文件包括更改标识,则判定配置文件发生变更,并获取发生更改的配置文件,作为待同步配置文件;
路径切分单元,用于通过对待同步配置文件对应路径进行切分,以获取配置文件的标志信息。
进一步的,路径切分单元包括:
目标绝对路径获取子单元,用于获取待同步配置文件对应的绝对路径,作为目标绝对路径;
分隔符识别子单元,用于通过预设的切分命令,识别目标绝对路径中的分隔符;
目标绝对路径切分子单元,用于基于分隔符对目标绝对路径进行切分,得到配置文件的标志信息。
进一步的,地址列表获取模块64包括:
查询请求生成单元,用于对标志信息进行封装,生成查询请求;
查询请求查询单元,用于将查询请求发送到配置管理数据库进行查询,得到每个待同步配置文件的IP地址;
地址组合单元,用于将每个待同步配置文件的IP地址进行组合,得到IP地址列表。
需要强调的是,为进一步保证上述待同步配置文件的私密和安全性,上述待同步配置文件还可以存储于一区块链的节点中。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图9,图9为本实施例计算机设备基本结构框图。
计算机设备7包括通过***总线相互通信连接存储器71、处理器72、网络接口73。需要指出的是,图中仅示出了具有三种组件存储器71、处理器72、网络接口73的计算机设备7,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
存储器71至少包括一种类型的可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器71可以是计算机设备7的内部存储单元,例如该计算机设备7的硬盘或内存。在另一些实施例中,存储器71也可以是计算机设备7的外部存储设备,例如该计算机设备7上配备的插接式硬盘,智能存储卡(SmartMedia Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。当然,存储器71还可以既包括计算机设备7的内部存储单元也包括其外部存储设备。本实施例中,存储器71通常用于存储安装于计算机设备7的操作***和各类应用软件,例如配置文件的同步方法的程序代码等。此外,存储器71还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器72在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器72通常用于控制计算机设备7的总体操作。本实施例中,处理器72用于运行存储器71中存储的程序代码或者处理数据,例如运行上述配置文件的同步方法的程序代码,以实现配置文件的同步方法的各种实施例。
网络接口73可包括无线网络接口或有线网络接口,该网络接口73通常用于在计算机设备7与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序可被至少一个处理器执行,以使至少一个处理器执行如上述的一种配置文件的同步方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例的方法。
本发明所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (7)

1.一种配置文件的同步方法,其特征在于,包括:
获取修改配置文件请求,并基于所述修改配置文件请求,对所述修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将所述修改后的配置文件存储于远端GitLab仓库中,其中,所述修改后的配置文件包括更改标识;
通过定时任务,定时从所述远端GitLab仓库中拉取配置文件,并将所述配置文件存储于本地Git仓库中;
定时轮询远端应用,判断所述远端应用是否存在应用扩容情况,得到判断结果;
若所述判断结果为所述远端应用存在所述应用扩容情况,则获取客户端请求参数;
基于所述客户端请求参数,获取所述客户端请求参数对应的配置文件,作为待同步配置文件;
在所述本地Git仓库中,若判定所述配置文件已发生变更,则将发生变更的配置文件作为所述待同步配置文件,以及获取所述待同步配置文件对应的标志信息,其中,所述标志信息包括文件所属模块、文件所属环境以及文件所属应用;
对所述标志信息进行封装,生成查询请求,并通过所述查询请求向配置管理数据库进行查询,以获取所述配置管理数据库所返回的IP地址列表;
通过预设的备份工具,将所述配置文件同步到所述IP地址列表;
其中,所述在所述本地Git仓库中,若判定所述配置文件已发生变更,则将发生变更的配置文件作为待同步配置文件,以及获取所述待同步配置文件对应的标志信息,包括:
在所述本地Git仓库中,通过遍历的方式,判断所述配置文件是否包括更改标识;
若所述配置文件包括所述更改标识,则判定所述配置文件发生变更,并获取发生更改的配置文件,作为所述待同步配置文件;
获取所述待同步配置文件对应的绝对路径,作为目标绝对路径;
通过预设的切分命令,识别所述目标绝对路径中的分隔符;
基于所述分隔符对所述目标绝对路径进行切分,得到所述配置文件的标志信息。
2.根据权利要求1所述的配置文件的同步方法,其特征在于,所述获取修改配置文件请求,并基于所述修改配置文件请求,对所述修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将所述修改后的配置文件存储于远端GitLab仓库中,包括:
获取所述修改配置文件请求,并对所述修改配置文件请求进行解析,以获取所述修改配置文件请求对应的配置文件和修改要求;
基于所述修改要求,对所述修改配置文件请求对应的配置文件进行修改,得到所述修改后的配置文件;
执行预设的推送命令,将所述修改后的配置文件从客户本地Git仓库传输到所述远端GitLab仓库。
3.根据权利要求1所述的配置文件的同步方法,其特征在于,所述获取修改配置文件请求,并基于所述修改配置文件请求,对所述修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将所述修改后的配置文件存储于远端GitLab仓库中之前,所述方法还包括:
获取新增配置文件请求,并对所述新增配置文件请求进行解析,以获取所述新增配置文件请求对应的文件路径;
基于所述文件路径,获取所述新增配置文件请求对应的配置文件,作为新增配置文件,其中,所述新增配置文件包括变更标识;
执行预设的推送命令,将所述新增配置文件从客户本地Git仓库传输到所述远端GitLab仓库。
4.根据权利要求1至3任一项所述的配置文件的同步方法,其特征在于,所述对所述标志信息进行封装,生成查询请求,并通过所述查询请求向配置管理数据库进行查询,以获取所述配置管理数据库所返回的IP地址列表,包括:
对所述标志信息进行封装,生成所述查询请求;
将所述查询请求发送到所述配置管理数据库进行查询,得到每个待同步配置文件的IP地址;
将每个所述待同步配置文件的IP地址进行组合,得到所述IP地址列表。
5.一种配置文件的同步装置,其特征在于,包括:
配置文件存储模块,用于获取修改配置文件请求,并基于所述修改配置文件请求,对所述修改配置文件请求对应的配置文件进行修改,得到修改后的配置文件,以及将所述修改后的配置文件存储于远端GitLab仓库中,其中,所述修改后的配置文件包括更改标识;
配置文件拉取模块,用于通过定时任务,定时从所述远端GitLab仓库中拉取配置文件,并将所述配置文件存储于本地Git仓库中;
扩容情况判断模块,用于定时轮询远端应用,判断所述远端应用是否存在应用扩容情况,得到判断结果;
客户端请求参数获取模块,用于若所述判断结果为所述远端应用存在所述应用扩容情况,则获取客户端请求参数;
客户端请求参数处理模块,用于基于所述客户端请求参数,获取所述客户端请求参数对应的配置文件,作为待同步配置文件;
标志信息获取模块,用于在所述本地Git仓库中,若判定所述配置文件已发生变更,则将发生变更的配置文件作为所述待同步配置文件,以及获取所述待同步配置文件对应的标志信息,其中,所述标志信息包括文件所属模块、文件所属环境以及文件所属应用;
地址列表获取模块,用于对所述标志信息进行封装,生成查询请求,并通过所述查询请求向配置管理数据库进行查询,以获取配置管理数据库所返回的IP地址列表;
配置文件同步模块,用于通过预设的备份工具,将所述配置文件同步到所述IP地址列表中;
其中,所述标志信息获取模块包括:
更改标识判断单元,用于在所述本地Git仓库中,通过遍历的方式,判断所述配置文件是否包括更改标识;
待同步配置文件确定单元,用于若所述配置文件包括所述更改标识,则判定所述配置文件发生变更,并获取发生更改的配置文件,作为所述待同步配置文件;
目标绝对路径获取子单元,用于获取所述待同步配置文件对应的绝对路径,作为目标绝对路径;
分隔符识别子单元,用于通过预设的切分命令,识别所述目标绝对路径中的分隔符;
目标绝对路径切分子单元,用于基于所述分隔符对所述目标绝对路径进行切分,得到所述配置文件的标志信息。
6.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至4中任一项所述的配置文件的同步方法。
7.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至4中任一项所述的配置文件的同步方法。
CN202210037252.6A 2022-01-13 2022-01-13 配置文件的同步方法、装置、计算机设备及存储介质 Active CN114385759B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210037252.6A CN114385759B (zh) 2022-01-13 2022-01-13 配置文件的同步方法、装置、计算机设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210037252.6A CN114385759B (zh) 2022-01-13 2022-01-13 配置文件的同步方法、装置、计算机设备及存储介质

Publications (2)

Publication Number Publication Date
CN114385759A CN114385759A (zh) 2022-04-22
CN114385759B true CN114385759B (zh) 2024-04-16

Family

ID=81201150

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210037252.6A Active CN114385759B (zh) 2022-01-13 2022-01-13 配置文件的同步方法、装置、计算机设备及存储介质

Country Status (1)

Country Link
CN (1) CN114385759B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115296990B (zh) * 2022-07-11 2024-06-21 中国信息通信研究院 用于生成网络配置文件的方法及装置、服务器、存储介质
CN114968415A (zh) * 2022-07-13 2022-08-30 深圳壹账通智能科技有限公司 配置文件修改方法、装置、设备及存储介质
CN115499487B (zh) * 2022-09-14 2024-04-02 平安壹钱包电子商务有限公司 一种服务器配置文件的更新方法、装置、存储介质及设备
CN116192878B (zh) * 2023-04-27 2023-07-18 北京微吼时代科技有限公司 一种基于Git的配置同步方法及***
CN116401319B (zh) * 2023-06-09 2023-09-12 建信金融科技有限责任公司 数据同步方法及装置、电子设备和计算机可读存储介质
CN116680012B (zh) * 2023-08-01 2023-10-24 浙江春风动力股份有限公司 工业软件配置管理***及方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111666081A (zh) * 2020-04-30 2020-09-15 平安科技(深圳)有限公司 基于Git的项目版本发布方法、装置、设备及介质
WO2020233373A1 (zh) * 2019-05-21 2020-11-26 深圳壹账通智能科技有限公司 一种应用程序的配置文件管理方法及装置
CN112379948A (zh) * 2020-12-02 2021-02-19 腾讯科技(深圳)有限公司 程序配置管理方法及装置、存储介质、电子设备
CN112732265A (zh) * 2019-10-29 2021-04-30 腾讯科技(深圳)有限公司 一种数据处理方法和相关装置
CN113312072A (zh) * 2021-06-11 2021-08-27 北京百度网讯科技有限公司 配置文件更新方法及装置、电子设备和介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020233373A1 (zh) * 2019-05-21 2020-11-26 深圳壹账通智能科技有限公司 一种应用程序的配置文件管理方法及装置
CN112732265A (zh) * 2019-10-29 2021-04-30 腾讯科技(深圳)有限公司 一种数据处理方法和相关装置
CN111666081A (zh) * 2020-04-30 2020-09-15 平安科技(深圳)有限公司 基于Git的项目版本发布方法、装置、设备及介质
CN112379948A (zh) * 2020-12-02 2021-02-19 腾讯科技(深圳)有限公司 程序配置管理方法及装置、存储介质、电子设备
CN113312072A (zh) * 2021-06-11 2021-08-27 北京百度网讯科技有限公司 配置文件更新方法及装置、电子设备和介质

Also Published As

Publication number Publication date
CN114385759A (zh) 2022-04-22

Similar Documents

Publication Publication Date Title
CN114385759B (zh) 配置文件的同步方法、装置、计算机设备及存储介质
US10127057B2 (en) Method and apparatus for dynamically implementing application function
CN107220142B (zh) 执行数据恢复操作的方法及装置
CN108874558B (zh) 分布式事务的消息订阅方法、电子装置及可读存储介质
CN112507027A (zh) 基于Kafka的增量数据同步方法、装置、设备及介质
CN111694592A (zh) 项目版本发布的管理方法以及***
WO2021072861A1 (zh) 应用服务处理方法、装置、终端及存储介质
CN111654522B (zh) 文件同步方法、文件同步服务器及存储介质
CN110737719B (zh) 数据同步方法、装置、设备及计算机可读存储介质
CN111225064A (zh) Ceph集群部署方法、***、设备和计算机可读存储介质
US20150121485A1 (en) Configuration of network devices
CN112486629A (zh) 微服务状态检测方法、装置、电子设备和存储介质
CN112860662B (zh) 自动化生产数据血缘关系建立方法、装置、计算机设备及存储介质
CN111597388A (zh) 基于分布式***的样本采集方法、装置、设备及介质
CN112328217A (zh) 一种代码部署方法、装置、***、计算机设备和介质
CN113434254B (zh) 客户端部署方法、装置、计算机设备及存储介质
CN113360172B (zh) 应用部署方法、装置、计算机设备及存储介质
CN113610527B (zh) 联盟链的交易方法、装置、***、终端设备及存储介质
CN107908629B (zh) 一种信息查询方法、终端以及设备
CN114143308A (zh) 文件上传信息处理方法、装置、计算机设备及存储介质
CN112231408B (zh) 数据集成方法及装置、电子设备、存储介质
CN114968822A (zh) 接口测试方法、装置、计算机设备及存储介质
CN113286014A (zh) 基础域名的动态配置方法、装置及相关设备
CN112559131A (zh) 更新容器镜像的方法、装置、设备及计算机可读存储介质
CN108595924B (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