CN112597134B - 分布式配置中心的配置方法、装置、电子设备和介质 - Google Patents
分布式配置中心的配置方法、装置、电子设备和介质 Download PDFInfo
- Publication number
- CN112597134B CN112597134B CN202011609973.7A CN202011609973A CN112597134B CN 112597134 B CN112597134 B CN 112597134B CN 202011609973 A CN202011609973 A CN 202011609973A CN 112597134 B CN112597134 B CN 112597134B
- Authority
- CN
- China
- Prior art keywords
- configuration
- transaction
- orthogonal easy
- orthogonal
- easy
- 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
- 238000000034 method Methods 0.000 title claims abstract description 68
- 238000003860 storage Methods 0.000 claims abstract description 25
- 230000015654 memory Effects 0.000 claims description 18
- 238000007792 addition Methods 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 9
- 230000037430 deletion Effects 0.000 claims description 9
- 230000004075 alteration Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 16
- 238000004590 computer program Methods 0.000 description 15
- 238000013515 script Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 7
- 238000012423 maintenance Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 230000005856 abnormality Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000009472 formulation Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 239000013307 optical fiber Substances 0.000 description 2
- 230000000644 propagated effect Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 108010001267 Protein Subunits Proteins 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/211—Schema design and management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开提供一种分布式配置中心的配置方法,包括:获取正交易配置要素,其中,正交易配置要素包括配置对象和针对配置对象的正交易操作要素;基于正交易配置要素,生成具有预定格式的正交易配置文件,其中,正交易配置文件用于指示对配置对象执行配置操作;解析正交易配置文件,以获得与分布式配置中心的配置接口对应的正交易操作参数;以及调用配置接口,以使得基于正交易操作参数对配置对象执行配置操作。本公开还提供了一种分布式配置中心的配置装置,电子设备以及计算机可读存储介质。本公开提供的方法和装置例如可以应用于金融领域或其他领域。
Description
技术领域
本公开涉及数据处理领域,特别是涉及一种分布式配置中心的配置方法、装置、电子设备和介质。
背景技术
Apollo是一个携程开源的分布式配置中心系统,具备规范的权限、流程治理等特性,已被业界广泛使用,尤其适用于微服务配置管理场景,该系统通过提供统一的界面来集中式管理不同环境(Environment)、不同集群(Cluster)以及不同命名空间(Namespace)的配置。当用户在Apollo系统的服务端对上述配置进行修改之后,服务端能够将最新的配置实时推送到应用端。在利用Apollo系统做动态配置维护时,一般需要手工操作,或者利用Apollo系统提供的配置接口,例如原生openAPI编写脚本实现自动化配置。
但是,手工操作需要耗费一定的人力成本,且需要操作手册或技术人员的辅助,且容易在理解上出现偏差,或者出现误操作。而通过配置接口编写脚本,存在一定的技术门槛,且需要对每个配置文件、每个配置项分别编写脚本语句,实现过程较为复杂,容易出错。
发明内容
有鉴于此,为了至少部分地克服相关技术中存在的上述技术问题,避免手工操作需要耗费一定的人力成本,且需要操作手册或技术人员的辅助,降低通过配置接口编写脚本存在的技术门槛,简化配置过程,提高配置准确性的技术效果,本公开提供了一种分布式配置中心的配置方法、装置、电子设备和介质。
为了实现上述目标,本公开的一个方面提供了一种分布式配置中心的配置方法,可以包括:获取正交易配置要素,其中,上述正交易配置要素包括配置对象和针对上述配置对象的正交易操作要素,基于上述正交易配置要素,生成具有预定格式的正交易配置文件,其中,上述正交易配置文件用于指示对上述配置对象执行配置操作,解析上述正交易配置文件,以获得与上述分布式配置中心的配置接口对应的正交易操作参数,以及调用上述配置接口,以使得基于上述正交易操作参数对上述配置对象执行上述配置操作。
根据本公开的实施例,上述配置对象可以包括:与命名空间对应的第一配置对象,其中,上述第一配置对象包括应用、文件类型和公私有,与配置项对应的第二配置对象,其中,上述第二配置对象包括环境、集群、配置项、配置项值和配置项描述。
根据本公开的实施例,上述正交易操作要素可以包括:针对上述第一配置对象的第一正交易操作要素,和/或针对上述第二配置对象的第二正交易操作要素。
根据本公开的实施例,上述第一正交易操作要素可以包括:新增或发布。
根据本公开的实施例,上述第二正交易操作要素可以包括以下至少之一:新增、删除和更改。
根据本公开的实施例,上述预定格式可以为可扩展标记语言格式,上述基于上述正交易配置要素,生成预定格式的正交易配置文件可以包括:为预定格式为可扩展标记语言的正交易配置文件配置根节点,基于上述第一配置对象和上述正交易操作要素,配置命名空间节点,其中,上述命名空间节点位于上述根节点的下一级,基于上述第二配置对象和上述正交易操作要素,配置配置项节点,其中,上述配置项节点位于上述命名空间节点的下一级,以及基于上述根节点、上述命名空间节点和上述配置项节点,生成预定格式的正交易配置文件。
根据本公开的实施例,上述方法还可以包括:基于上述正交易配置要素,生成反交易配置要素,其中,上述反交易配置要素包括上述配置对象和针对上述配置对象的反交易操作要素,基于上述正交易配置文件,生成具有上述预定格式的反交易配置文件,其中,上述反交易配置文件用于指示对上述配置对象执行回滚操作,解析上述反交易配置文件,以获得与上述分布式配置中心的配置接口对应的反交易操作参数,以及调用上述配置接口,以使得基于上述反交易操作参数对上述配置对象执行上述回滚操作。
根据本公开的实施例,上述反交易操作要素可以包括:针对上述第一配置对象的第一反交易操作要素,其中,上述第一反交易操作要素为上述第一正交易操作要素的逆操作,和/或针对上述第二配置对象的第二反交易操作要素,其中,上述第二反交易操作要素为上述第二正交易操作要素的逆操作。
根据本公开的实施例,上述基于上述正交易配置要素,生成反交易配置要素可以包括:响应于上述配置操作的执行异常,基于上述正交易配置要素,生成反交易配置要素。
为了实现上述目标,本公开的另一个方面提供了一种分布式配置中心的配置装置,可以包括:正交易配置要素获取模块,用于获取正交易配置要素,其中,上述正交易配置要素包括配置对象和针对上述配置对象的正交易操作要素,正交易配置文件生成模块,用于基于上述正交易配置要素,生成具有预定格式的正交易配置文件,其中,上述正交易配置文件用于指示对上述配置对象执行配置操作,正交易操作参数获取模块,用于解析上述正交易配置文件,以获得与上述分布式配置中心的配置接口对应的正交易操作参数,以及配置操作执行模块,用于调用上述配置接口,以使得基于上述正交易操作参数对上述配置对象执行上述配置操作。
根据本公开的实施例,上述配置对象可以包括:与命名空间对应的第一配置对象,其中,上述第一配置对象包括应用、文件类型和公私有,与配置项对应的第二配置对象,其中,上述第二配置对象包括环境、集群、配置项、配置项值和配置项描述。
根据本公开的实施例,上述正交易操作要素可以包括:针对上述第一配置对象的第一正交易操作要素,和/或针对上述第二配置对象的第二正交易操作要素。
根据本公开的实施例,上述第一正交易操作要素可以包括:新增或发布。
根据本公开的实施例,上述第二正交易操作要素可以包括以下至少之一:新增、删除和更改。
根据本公开的实施例,上述预定格式可以为可扩展标记语言格式,上述正交易配置文件生成模块可以包括:根节点配置子模块,用于为预定格式为可扩展标记语言的正交易配置文件配置根节点,命名空间节点配置子模块,用于基于上述第一配置对象和上述正交易操作要素,配置命名空间节点,其中,上述命名空间节点位于上述根节点的下一级,配置项节点配置子模块,用于基于上述第二配置对象和上述正交易操作要素,配置配置项节点,其中,上述配置项节点位于上述命名空间节点的下一级,以及正交易配置文件生成子模块,用于基于上述根节点、上述命名空间节点和上述配置项节点,生成预定格式的正交易配置文件。
根据本公开的实施例,上述装置还可以包括:反交易配置要素生成模块,用于基于上述正交易配置要素,生成反交易配置要素,其中,上述反交易配置要素包括上述配置对象和针对上述配置对象的反交易操作要素,反交易配置文件生成模块,用于基于上述正交易配置文件,生成具有上述预定格式的反交易配置文件,其中,上述反交易配置文件用于指示对上述配置对象执行回滚操作,反交易操作参数获取模块,用于解析上述反交易配置文件,以获得与上述分布式配置中心的配置接口对应的反交易操作参数,以及回滚操作执行模块,用于调用上述配置接口,以使得基于上述反交易操作参数对上述配置对象执行上述回滚操作。
根据本公开的实施例,上述反交易操作要素可以包括:针对上述第一配置对象的第一反交易操作要素,其中,上述第一反交易操作要素为上述第一正交易操作要素的逆操作,和/或针对上述第二配置对象的第二反交易操作要素,其中,上述第二反交易操作要素为上述第二正交易操作要素的逆操作。
根据本公开的实施例,上述反交易配置要素生成模块可以用于:响应于上述配置操作的执行异常,基于上述正交易配置要素,生成反交易配置要素。
为实现上述目标,本公开的另一方面提供了一种电子设备,可以包括:一个或多个处理器,存储器,用于存储一个或多个程序,其中,当上述一个或多个程序被上述一个或多个处理器执行时,使得上述一个或多个处理器实现如上上述的分布式配置中心的配置方法。
为实现上述目标,本公开的另一方面提供了一种计算机可读存储介质,可以存储有计算机可执行指令,上述指令在被执行时用于实现如上上述的分布式配置中心的配置方法。
为实现上述目标,本公开的另一方面提供了一种计算机程序,上述计算机程序可以包括计算机可执行指令,上述指令在被执行时用于实现如上上述的分布式配置中心的配置方法。
与相关技术相比,本公开提供了一种分布式配置中心的自动化的配置方法,可以实现全自动化动态配置的设置,至少部分克服相关技术中配置手工操作需要耗费一定的人力成本,且需要操作手册或技术人员的辅助,容易在理解上出现偏差,甚至出现误操作的问题。也可以至少部分克服相关技术中通过配置接口编写脚本,存在一定的技术门槛,需要对每个配置文件、每个配置项分别编写脚本语句,实现过程较为复杂,容易出错的问题。
附图说明
通过以下参照附图对本公开实施例的描述,本公开的上述以及其他目的、特征和优点将更为清楚,在附图中:
图1示意性示出了适用于本公开实施例的可以应用分布式配置中心的配置方法和装置的系统架构;
图2示意性示出了根据本公开实施例的分布式配置中心的配置方法的流程图;
图3示意性示出了根据本公开另一实施例的分布式配置中心的配置方法的流程图;
图4示意性示出了根据本公开实施例的分布式配置中心的配置装置的框图;
图5示意性示出了根据本公开另一实施例的分布式配置中心的配置装置的框图;
图6示意性示出了根据本公开实施例的适于实现上文描述的分布式配置中心的配置方法的计算机可读存储介质产品的示意图;以及
图7示意性示出了根据本公开实施例的适于实现上文描述的分布式配置中心的配置方法的电子设备的框图。
在附图中,相同或对应的标号表示相同或对应的部分。
应该注意的是,附图并未按比例绘制,并且出于说明目的,在整个附图中类似结构或功能的元素通常用类似的附图标记来表示。
具体实施方式
以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。
在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了上述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。
在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。
在使用类似于“A、B和C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B和C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。在使用类似于“A、B或C等中至少一个”这样的表述的情况下,一般来说应该按照本领域技术人员通常理解该表述的含义来予以解释(例如,“具有A、B或C中至少一个的系统”应包括但不限于单独具有A、单独具有B、单独具有C、具有A和B、具有A和C、具有B和C、和/或具有A、B、C的系统等)。
附图中示出了一些方框图和/或流程图。应理解,方框图和/或流程图中的一些方框或其组合可以由计算机程序指令来实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程分布式配置中心的配置装置的处理器,从而这些指令在由该处理器执行时可以创建用于实现这些方框图和/或流程图中所说明的功能/操作的装置。本公开的技术可以硬件和/或软件(包括固件、微代码等)的形式来实现。另外,本公开的技术可以采取存储有指令的计算机可读存储介质上的计算机程序产品的形式,该计算机程序产品可供指令执行系统使用或者结合指令执行系统使用。
本公开提供了一种分布式配置中心的自动化的配置方法,包括正交易配置文件生成阶段和配置操作执行阶段。在正交易配置文件生成阶段,基于包括配置对象和针对配置对象的正交易操作要素的正交易配置要素,生成具有预定格式的正交易配置文件。在配置操作执行阶段,解析正交易配置文件,以获得与分布式配置中心提供的配置接口对应的正交易操作参数,然后调用该配置接口,就可以基于正交易操作参数对配置对象执行配置操作,可以实现全自动化动态配置的设置,至少部分克服相关技术中配置手工操作需要耗费一定的人力成本,且需要操作手册或技术人员的辅助,容易在理解上出现偏差,甚至出现误操作的问题。也可以至少部分克服相关技术中通过配置接口编写脚本,存在一定的技术门槛,需要对每个配置文件、每个配置项分别编写脚本语句,实现过程较为复杂,容易出错的问题。
Apollo作为业界广泛使用的分布式配置中心,在做动态配置维护时,目前通常需要手工操作,导致效率低下,且需要辅助,否则容易造成理解偏差,或者利用Apollo系统提供的openAPI编写脚本实现自动化配置,导致配置实现较为复杂,且容易出现错误,而不易校验。本公开的分布式配置中心将以Apollo为例对配置方法进行详细阐述。
需要说明的是,本公开提供的分布式配置中心的配置方法和装置可用于金融领域中,也可用于除金融领域之外的任意领域中。因此,对本公开所提供的分布式配置中心的配置方法和装置的应用领域不做限定。
图1示意性示出了适用于本公开实施例的可以应用分布式配置中心的配置方法和装置的系统架构100。需要注意的是,图1所示仅为可应用本公开实施例的系统架构的示例,以帮助本领域技术人员理解本公开的技术内容,但并不意味着本公开实施例不可以用于其他设备、系统、环境或场景。
如图1所示,根据该实施例的系统架构100可以包括分布式配置中心101、客户端102、应用程序103、本地文件缓存104以及服务器105。用户可以对分布式配置中心101的配置进行修改或发布。分布式配置中心101和客户端102保持一个长连接,从而能第一时间获得配置更新的推送。客户端102可以向分布式配置中心101进行配置更新的推送,同时为了防止推送机制失效导致配置不更新,客户端102也可以定期从分布式配置中心101拉取配置,存储在客户端102的内存缓存中。客户端102会将从分布式配置中心101获取到的配置在本地文件系统同步缓存一份本地文件缓存104,这样在遇到服务不可用,或者网络不通的时候,依然能从本地恢复配置。应用程序103可以从客户端102的内存缓存中获取配置以及更新通知。
需要说明的是,本公开提供的分布式配置中心的配置方法一般可以由服务器105执行。相应地,本公开提供的分布式配置中心的配置装置一般可以设置于服务器105中。本公开提供的分布式配置中心的配置方法也可以由不同于服务器105且能够与客户端102和/或服务器105通信的其他服务器执行。相应地,本公开提供的分布式配置中心的配置装置也可以设置于不同于服务器105且能够与客户端102和/或服务器105通信的其他服务器中。
应该理解,图1中的分布式配置中心、客户端和应用程序的数目仅仅是示意性的。根据实现需要,可以具有任意数目的分布式配置中心、客户端和应用程序。
图2示意性示出了根据本公开实施例的分布式配置中心的配置方法的流程图。如图2所示,该方法200可以包括操作S210~操作S240。
在操作S210,获取正交易配置要素。
根据本公开的实施例,正交易配置要素包括配置对象和针对配置对象的正交易操作要素。配置对象可以包括但不限于与命名空间相关的配置对象和与配置项相关的配置对象。命名空间是分布式配置中心对一个独立的配置文件的术语定义。配置项为命名空间中的参数。正交易用于表征配置的执行,正交易操作要素用于表征对配置对象执行配置操作的操作要素。在本公开中,配置操作可以是动态配置,就是在程序运行期间可以根据需要动态调整的配置操作,动态配置使得应用行为和功能的调度变得更加灵活。
在操作S220,基于正交易配置要素,生成具有预定格式的正交易配置文件。
根据本公开的实施例,正交易配置文件用于指示对配置对象执行配置操作。可选地,可以以可扩展标记语言(Extensible Markup Language,xml)格式定义一组需要的执行的动态配置,即预定格式可以为xml格式,xml格式是根据xml文件中的节点顺序依次执行的,便于开发人员理解、维护,投产时可以支持一键配置。
在操作S230,解析正交易配置文件,以获得与分布式配置中心的配置接口对应的正交易操作参数。
在操作S240,调用配置接口,以使得基于正交易操作参数对配置对象执行配置操作。
根据本公开的实施例,配置接口可以是Apollo系统提供的开放应用程序接口(Open Application Programming Interface,Open API),服务对象是第三方的配置管理系统,比如数据库的运维系统可以通过Open API写入数据库连接的配置,然后应用能实时监听到数据库连接配置的变化,从而可以做相应切换。
根据本公开的实施例,本公开提供了一个java可执行程序,以预定格式的正交易配置文件定义需要的执行的动态配置,如新增、发布命名空间,增、删、改配置项。解析正交易配置文件可以得到每一个正交易操作,可以将与正交易操作对应的操作要素转化为OpenAPI的输入参数,即正交易操作参数,最后在程序内调用Open API接口即可对配置对象执行配置操作。
需要说明的是,本公开实施例提供的分布式配置中心的配置方法可以应用在诸多场景中,为研发、运维过程中的配置提供便利。
可选地,可以应用在版本投产自动化部署场景中。每个版本都可能涉及不同业务集群、不同配置文件内不同配置项的调整,采用自动化工具,可以全自动实现动态配置的设置。
可选地,可以应用在灰度发布以后的转正投产场景中。对于灰度发布的应用场景,会涉及很多功能开关、黑白名单、灰度策略相关的动态配置,这些配置在灰度版本转正投产时,需要一次性完成调整,采用自动化工具可以实现一键切换,不必采用人工修改,可以达到提高版本部署效率的效果。
通过本公开的实施例,可以实现全自动化动态配置的设置,至少部分克服相关技术中配置手工操作需要耗费一定的人力成本,且需要操作手册或技术人员的辅助,容易在理解上出现偏差,甚至出现误操作的问题。也可以至少部分克服相关技术中通过配置接口编写脚本,存在一定的技术门槛,需要对每个配置文件、每个配置项分别编写脚本语句,实现过程较为复杂,容易出错的问题。
作为一种可选的实施例,分布式配置中心可以通过命名空间(Namespace)对多个不同应用的配置进行统一管理,并能够实现多个不同应用共享同一份配置。因此,配置对象可以包括与命名空间对应的第一配置对象和与配置项对应的第二配置对象。其中,第一配置对象用于对命名空间进行属性定义,可以包括但不限于应用(APPID)、文件类型(FORMAT)和公私有(PRIVATE)。第二配置对象用于对配置项进行属性定义,可以包括但不限于环境(ENV)、集群(CLUSTER)、配置项(KEY)、配置项值(VALUE)和配置项描述(COMMENT)。
由此可见,本公开的配置对象涉及不同业务集群,不同配置项,因此可以实现不同场景中配置项的自动配置,涵盖范围广,适用性强,可以满足在研发和运维的多种场景中动态配置的实际需求。
通过本公开的实施例,提供多种配置对象的选择,可以实现灵活多样的配置组合,实现多中配置需求,同时可以实现对需要执行的动态配置的灵活配置,给用户提供个性化的配置体验。
作为一种可选的实施例,正交易操作要素可以包括:针对第一配置对象的第一正交易操作要素;和/或针对第二配置对象的第二正交易操作要素。每个操作步骤对应一个命名空间的创建或发布,或一个配置项的新增、修改、删除。
根据本公开的实施例,正交易操作要素可以仅包括针对第一配置对象的第一正交易操作要素,也可以仅包括针对第二配置对象的第二正交易操作要素,还可以既包括针对第一配置对象的第一正交易操作要素,也包括针对第二配置对象的第二正交易操作要素。本领域技术人员可以根据实际配置需求做灵活选择,本公开对此不做限定。
通过针对与第一配置对象和/或第二配置对象对应的正交易操作要素,可以实现对第一配置对象和/或第二配置对象的正交易操作,提供正交易操作的精准度,真正实现个性化的配置选择,同时提高配置效率。
作为一种可选的实施例,第一正交易操作要素可以包括:新增或发布。具体实施时,第一正交易操作要素可以是新增命名空间,也可以是发布命名空间。
作为一种可选的实施例,第二正交易操作要素可以包括以下至少之一:新增、删除和更改。具体实施时,第二正交易操作要素可以是新增(add)配置项,也可以是删除(delete)配置项,还可以是更改(update)配置项。
通过本公开的实施例,针对命名空间和配置项,分别定义正交易操作,可以实现对不同配置对象的配置操作,使得配置方法灵活多变,符合用户的实际配置需求。
作为一种可选的实施例,基于正交易配置要素,生成预定格式的正交易配置文件可以包括:为预定格式为可扩展标记语言的正交易配置文件配置根节点;基于第一配置对象和正交易操作要素,配置命名空间节点,其中,命名空间节点位于根节点的下一级;基于第二配置对象和正交易操作要素,配置配置项节点,其中,配置项节点位于命名空间节点的下一级;以及基于根节点、命名空间节点和配置项节点,生成预定格式的正交易配置文件。
根据本公开的实施例,配置项节点和配置命名空间节点时,还可以配置附加信息,附加信息可以包括操作人ID(OPERATOR)。
具体实施时,Xml配置文件格式,包括根节点<root>。
在创建命名空间时,在根节点下创建namespace节点(<namespace name=″F-EPAY-BTT.TestAutoCreatedNS″operType=″add″>),可以实现命名空间的创建。
在增删改命名空间内的配置项时,在根节点下创建namespace节点,该namespace节点下所有的需要增(add)、删(delete)、改(update)的配置项,都是<config>节点下维护。
在发布命名空间时,在根节点下创建namespace节点(<namespace name=″F-EPAY-BTT.testAutoCreatedNS″operType=″release″>),可以实现命名空间的创建。
在以文件形式更新非属性类型配置内容时,在根节点下创建<namespace name=″testAutoCreatedXML.xml″operType=″update″><env>DEV</env>,无论新增的Namespace是首次新增的配置,还是更新已有的配置,都可以这种形式维护。
Xml格式的自动化配置描述文件,可按如下层次进行设计:
Root节点
命名空间节点
属性包括:应用、文件类型、公私有、操作类型、操作人
配置项节点
属性包括:环境、集群、配置项名称、配置项值、配置项描述、操作类型、操作人
其中,命名空间节点是位于Root节点下一级的节点,配置项节点又是位于命名空间节点下一级的节点,在执行该正向配置文件时,先执行命名空间节点,再执行配置项节点。
相关技术中,Apollo提供的OpenAPI配置接口需要将以上属性,以及操作类型(增加、删除、修改)、操作人ID(OPERATOR)等附加信息,拼接为一个http脚本实现调用,对于开发人员的技术门槛较高,且脚本内容较为复杂,容易出错。
根据本公开的实施例,xml格式是根据xml格式文件中的节点顺序依次执行的。因此如果有新增Namespace,在新Namespace增加配置项,最后还要立即发布Namespace的话,需要按顺序配置Namespace的add、update、release节点。对于xml模式,增加配置项的操作是先删除(不论成功与否),再新增,因此总是会以最后一个版本的xml为准。xml文件导入模式,适用于例行版本投产。命名空间和配置项的变更维护到规定的xml文件中,可以通过命令由配置工具读取、解析和执行。
通过本公开的实施例,每个版本都可能涉及不同业务集群、不同配置文件内不同配置项的调整,采用自动化工具,可以全自动实现动态配置的设置。
作为一种可选的实施例,本公开考虑到一旦系统或配置出现问题,需要回退,相关技术中仍然需要手工将所有执行的配置进行还原,导致人力成本较高,且容易出错。有鉴于此,本公开在前述实现一键自动配置的基础上,还提供了一种可以实现一键回滚的配置方法。
图3示意性示出了根据本公开另一实施例的分布式配置中心的配置方法的流程图。如图3所示,该方法300除了可以包括前述操作S210~操作S240之外,还可以包括操作S310~操作S340。
在操作S310,基于正交易配置要素,生成反交易配置要素。
根据本公开的实施例,反交易配置要素包括配置对象和针对配置对象的反交易操作要素。配置对象可以包括但不限于与命名空间相关的配置对象和与配置项相关的配置对象。命名空间是分布式配置中心对一个独立的配置文件的术语定义。配置项为命名空间中的参数。反交易用于表征配置的回滚,反交易操作要素用于表征对配置对象回滚配置操作的操作要素。
具体实施时,当执行安装时,在应用程序内对xml配置文件进行解析,生成“反交易”配置文件。
在操作S320,基于正交易配置文件,生成具有预定格式的反交易配置文件。
根据本公开的实施例,反交易配置文件用于指示对配置对象执行回滚操作。反交易配置文件的格式与正交易配置文件的预定格式一致,因此可以直接执行该工具,加载反交易配置文件实现自动化回滚。
在操作S330,解析反交易配置文件,以获得与分布式配置中心的配置接口对应的反交易操作参数。
在操作S340,调用配置接口,以使得基于反交易操作参数对配置对象执行回滚操作。
通过本公开的实施例,可以基于反交易配置文件实现自动化回滚。
作为一种可选的实施例,反交易操作要素可以包括:针对第一配置对象的第一反交易操作要素,其中,第一反交易操作要素为第一正交易操作要素的逆操作;和/或针对第二配置对象的第二反交易操作要素,其中,第二反交易操作要素为第二正交易操作要素的逆操作。
根据本公开的实施例,在应用程序内对正交易配置文件进行解析,生成“反交易”配置文件,具体实施时,生成策略为:对于新增命名空间或配置项,利用正交易配置信息,在“反交易”配置文件中写入删除操作。对于修改命名空间内的配置项,利用正交易配置信息预先查询存量配置,在“反交易”配置文件中写入更新操作。对于删除命名空间或配置项,利用正交易配置信息预先查询存量配置,在“反交易”配置文件中写入新增操作。
通过本公开的实施例,在应用程序内对正交易配置文件进行解析,生成“反交易”配置文件,可以实现对动态配置的一键回滚,避免相关技术中仍然需要手工将所有配置还原,人力成本较高,且容易出错的技术问题。
作为一种可选的实施例,基于正交易配置要素,生成反交易配置要素可以包括:响应于配置操作的执行异常,基于正交易配置要素,生成反交易配置要素。
根据本公开的实施例,在生产投产后出现严重问题,运维人员需要迅速回退版本时,才会基于正交易配置要素,生成反交易配置要素,利用生成的反交易配置文件,可以实现一键回滚,同时保证操作迅速、准确。可以避免采用手工操作或者利用Apollo的回滚功能,只能对每个配置文件单独操作,操作成本高,且容易出错或遗漏的技术问题。
图4示意性示出了根据本公开实施例的分布式配置中心的配置装置的框图。如图4所示,该装置400可以包括正交易配置要素获取模块410、正交易配置文件生成模块420、正交易操作参数获取模块430以及配置操作执行模块440。
正交易配置要素获取模块410,用于获取正交易配置要素。在本公开中,正交易配置要素包括配置对象和针对配置对象的正交易操作要素。可选地,正交易配置要素获取模块410例如可以用于执行图2描述的操作S210,在此不再赘述。
正交易配置文件生成模块420,用于基于正交易配置要素,生成具有预定格式的正交易配置文件。在本公开中,正交易配置文件用于指示对配置对象执行配置操作。可选地,正交易配置文件生成模块420例如可以用于执行图2描述的操作S220,在此不再赘述。
正交易操作参数获取模块430,用于解析正交易配置文件,以获得与分布式配置中心的配置接口对应的正交易操作参数。可选地,正交易操作参数获取模块430例如可以用于执行图2描述的操作S230,在此不再赘述。
配置操作执行模块440,用于调用配置接口,以使得基于正交易操作参数对配置对象执行配置操作。可选地,配置操作执行模块440例如可以用于执行图2描述的操作S240,在此不再赘述。
作为一种可选的实施例,配置对象可以包括:与命名空间对应的第一配置对象。在本公开中,第一配置对象包括应用、文件类型和公私有;与配置项对应的第二配置对象,其中,第二配置对象包括环境、集群、配置项、配置项值和配置项描述。
作为一种可选的实施例,正交易操作要素可以包括:针对第一配置对象的第一正交易操作要素;和/或针对第二配置对象的第二正交易操作要素。
作为一种可选的实施例,第一正交易操作要素可以包括:新增或发布。
作为一种可选的实施例,第二正交易操作要素可以包括以下至少之一:新增、删除和更改。
作为一种可选的实施例,预定格式可以为可扩展标记语言格式,正交易配置文件生成模块可以包括:根节点配置子模块,用于为预定格式为可扩展标记语言的正交易配置文件配置根节点;命名空间节点配置子模块,用于基于第一配置对象和正交易操作要素,配置命名空间节点。在本公开中,命名空间节点位于根节点的下一级;配置项节点配置子模块,用于基于第二配置对象和正交易操作要素,配置配置项节点。在本公开中,配置项节点位于命名空间节点的下一级;以及正交易配置文件生成子模块,用于基于根节点、命名空间节点和配置项节点,生成预定格式的正交易配置文件。
图5示意性示出了根据本公开另一实施例的分布式配置中心的配置装置的框图。如图5所示,该装置500除了可以包括前述正交易配置要素获取模块410、正交易配置文件生成模块420、正交易操作参数获取模块430以及配置操作执行模块440之外,还可以包括反交易配置要素生成模块510、反交易配置文件生成模块520、反交易操作参数获取模块530以及回滚操作执行模块540。
反交易配置要素生成模块510,用于基于正交易配置要素,生成反交易配置要素。在本公开中,。在本公开中,反交易配置要素包括配置对象和针对配置对象的反交易操作要素。可选地,反交易配置要素生成模块510例如可以用于执行图3描述的操作S310,在此不再赘述。
反交易配置文件生成模块520,用于基于正交易配置文件,生成具有预定格式的反交易配置文件。在本公开中,反交易配置文件用于指示对配置对象执行回滚操作。可选地,反交易配置文件生成模块520例如可以用于执行图3描述的操作S310,在此不再赘述。
反交易操作参数获取模块530,用于解析反交易配置文件,以获得与分布式配置中心的配置接口对应的反交易操作参数。可选地,反交易操作参数获取模块530例如可以用于执行图3描述的操作S330,在此不再赘述。
回滚操作执行模块540,用于调用配置接口,以使得基于反交易操作参数对配置对象执行回滚操作。可选地,回滚操作执行模块540例如可以用于执行图3描述的操作S340,在此不再赘述。
作为一种可选的实施例,反交易操作要素可以包括:针对第一配置对象的第一反交易操作要素。在本公开中,第一反交易操作要素为第一正交易操作要素的逆操作;和/或针对第二配置对象的第二反交易操作要素。在本公开中,第二反交易操作要素为第二正交易操作要素的逆操作。
作为一种可选的实施例,反交易配置要素生成模块可以用于:响应于配置操作的执行异常,基于正交易配置要素,生成反交易配置要素。
作为一种可选的实施例,分布式配置中心可以为携程开源的分布式配置中心Apollo。
需要说明的是,装置部分实施例中各模块的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。
根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。
例如,正交易配置要素获取模块、正交易配置文件生成模块、正交易操作参数获取模块、配置操作执行模块、根节点配置子模块、命名空间节点配置子模块、配置项节点配置子模块、正交易配置文件生成子模块、反交易配置要素生成模块、反交易配置文件生成模块、反交易操作参数获取模块以及回滚操作执行模块可以合并在一个模块中实现、或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合、并在一个模块中实现。根据本公开的实施例,正交易配置要素获取模块、正交易配置文件生成模块、正交易操作参数获取模块、配置操作执行模块、根节点配置子模块、命名空间节点配置子模块、配置项节点配置子模块、正交易配置文件生成子模块、反交易配置要素生成模块、反交易配置文件生成模块、反交易操作参数获取模块以及回滚操作执行模块中的至少一个可以至少被部分地实现为硬件电路、例如现场可编程门阵列(FNGA)、可编程逻辑阵列(NLA)、片上系统、基板上的系统、封装上的系统、专用集成电路(ASIC)、或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现、或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,正交易配置要素获取模块、正交易配置文件生成模块、正交易操作参数获取模块、配置操作执行模块、根节点配置子模块、命名空间节点配置子模块、配置项节点配置子模块、正交易配置文件生成子模块、反交易配置要素生成模块、反交易配置文件生成模块、反交易操作参数获取模块以及回滚操作执行模块中的至少一个可以至少被部分地实现为计算机程序模块、当该计算机程序模块被运行时、可以执行相应的功能。
图6示意性示出了根据本公开实施例的适于实现上文描述的分布式配置中心的配置方法的计算机可读存储介质产品的示意图。
在一些可能的实施方式中、本发明的各个方面还可以实现为一种程序产品的形式、其包括程序代码、当程序产品在设备上运行时、程序代码用于使设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施例的分布式配置中心的配置方法中的前述各项操作(或步骤)。例如,电子设备可以执行如图2中所示的操作S210~操作S240。电子设备可以执行如图3中所示的操作S310~操作S340。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件、或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
如图6所示,描述了根据本发明的实施方式的分布式配置中心的配置的程序产品600、其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码、并可以在设备、例如个人电脑上运行。然而、本发明的程序产品不限于此、在本文件中、可读存储介质可以是任何包含或存储程序的有形介质、该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号、其中承载了可读程序代码。这种传播的数据信号可以采用多种形式、包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质、该可读介质可以发送、传播或者传输用于由指令执行系统、系统或者器件使用或者与其结合使用的程序。可读介质上包含的程序代码可以用任何适当的介质传输、包括——但不限于——无线、有线、光缆、RF等等、或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码、程序设计语言包括面向对象的程序设计语言-诸如Java、C++等、还包括常规的过程式程序设计语言-诸如“C”、语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中、远程计算设备可以通过任意种类的网络——包括局域网(LAA)或广域网(WAA)一连接到用户计算设备、或者、可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
图7示意性示出了根据本公开实施例的适于实现上文描述的分布式配置中心的配置方法的电子设备的框图。图7示出的电子设备仅仅是一个示例、不应对本公开实施例的功能和使用范围带来任何限制。
如图7所示、根据本公开实施例的电子设备700包括处理器701、其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如CNU)、指令集处理器和/或相关芯片组和/或专用微处理器(例如、专用集成电路(ASIC))、等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。
在RAM 703中、存储有电子设备700操作所需的各种程序和数据。处理器701、ROM702以及RAM 703通过总线704彼此相连。处理器701通过执行ROM 702和/或RAM 703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意、所述程序也可以存储在除ROM 702和RAM 703以外的一个或多个存储器中。处理器701也可以通过执行存储在所述一个或多个存储器中的程序来执行根据本公开实施例图2中所示的操作S210~操作S240,以及图3中所示的操作S310~操作S340。
根据本公开的实施例、电子设备700还可以包括输入/输出(I/O)接口705、输入/输出(I/O)接口705也连接至总线704。系统700还可以包括连接至I/O接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAA卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711、诸如磁盘、光盘、磁光盘、半导体存储器等等、根据需要安装在驱动器710上、以便于从其上读出的计算机程序根据需要被安装入存储部分708。
根据本公开的实施例、根据本公开实施例的方法流程可以被实现为计算机软件程序。例如、本公开的实施例包括一种计算机程序产品、其包括承载在计算机可读存储介质上的计算机程序、该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中、该计算机程序可以通过通信部分709从网络上被下载和安装、和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时、执行本公开实施例的系统中限定的上述功能。根据本公开的实施例、上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。
本公开还提供了一种计算机可读存储介质、该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在、而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序、当上述一个或者多个程序被执行时、实现根据本公开实施例的文件入库方法、包括图2中所示的操作S210~操作S240,以及图3中所示的操作S310~操作S340。
根据本公开的实施例、计算机可读存储介质可以是非易失性的计算机可读存储介质、例如可以包括但不限于:便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(ENROM或闪存)、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中、计算机可读存储介质可以是任何包含或存储程序的有形介质、该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。例如、根据本公开的实施例、计算机可读存储介质可以包括上文描述的ROM 702和/或RAM 703和/或ROM 702和RAM 703以外的一个或多个存储器。
附图中的流程图和框图、图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上、流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分、上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意、在有些作为替换的实现中、方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如、两个接连地表示的方框实际上可以基本并行地执行、它们有时也可以按相反的顺序执行、这依所涉及的功能而定。也要注意的是、框图或流程图中的每个方框、以及框图或流程图中的方框的组合、可以用执行规定的功能或操作的专用的基于硬件的系统来实现、或者可以用专用硬件与计算机指令的组合来实现。
本领域技术人员可以理解、本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合、即使这样的组合或结合没有明确记载于本公开中。特别地、在不脱离本公开精神和教导的情况下、本公开的各个实施例和/或权利要求中记载的特征可以进行多种组合和/或结合。所有这些组合和/或结合均落入本公开的范围。
以上对本公开的实施例进行了描述。但是、这些实施例仅仅是为了说明的目标、而并非为了限制本公开的范围。尽管在以上分别描述了各实施例、但是这并不意味着各个实施例中的措施不能有利地结合使用。本公开的范围由所附权利要求及其等同物限定。不脱离本公开的范围、本领域技术人员可以做出多种替代和修改、这些替代和修改都应落在本公开的范围之内。
Claims (11)
1.一种分布式配置中心的配置方法,包括:
获取正交易配置要素,其中,所述正交易配置要素包括配置对象和针对所述配置对象的正交易操作要素;
基于所述正交易配置要素,生成具有预定格式的正交易配置文件,其中,所述正交易配置文件用于指示对所述配置对象执行配置操作;
解析所述正交易配置文件,以获得与所述分布式配置中心的配置接口对应的正交易操作参数;
调用所述配置接口,以使得基于所述正交易操作参数对所述配置对象执行所述配置操作;
所述方法还包括:
基于所述正交易配置要素,生成反交易配置要素,其中,所述反交易配置要素包括所述配置对象和针对所述配置对象的反交易操作要素;
基于所述正交易配置文件,生成具有所述预定格式的反交易配置文件,其中,所述反交易配置文件用于指示对所述配置对象执行回滚操作;
解析所述反交易配置文件,以获得与所述分布式配置中心的配置接口对应的反交易操作参数;
调用所述配置接口,以使得基于所述反交易操作参数对所述配置对象执行所述回滚操作;
其中,正交易用于表征配置的执行,反交易用于表征配置的回滚。
2.根据权利要求1所述的方法,其中,所述配置对象包括:
与命名空间对应的第一配置对象,其中,所述第一配置对象包括应用、文件类型和公私有;
与配置项对应的第二配置对象,其中,所述第二配置对象包括环境、集群、配置项、配置项值和配置项描述。
3.根据权利要求2所述的方法,其中,所述正交易操作要素包括:
针对所述第一配置对象的第一正交易操作要素;和/或
针对所述第二配置对象的第二正交易操作要素。
4.根据权利要求3所述的方法,其中,所述第一正交易操作要素包括:新增或发布。
5.根据权利要求3所述的方法,其中,所述第二正交易操作要素包括以下至少之一:新增、删除和更改。
6.根据权利要求2至5中任一项所述的方法,其中,所述预定格式为可扩展标记语言格式,所述基于所述正交易配置要素,生成预定格式的正交易配置文件包括:
为预定格式为可扩展标记语言的正交易配置文件配置根节点;
基于所述第一配置对象和所述正交易操作要素,配置命名空间节点,其中,所述命名空间节点位于所述根节点的下一级;
基于所述第二配置对象和所述正交易操作要素,配置配置项节点,其中,所述配置项节点位于所述命名空间节点的下一级;
基于所述根节点、所述命名空间节点和所述配置项节点,生成预定格式的正交易配置文件。
7.根据权利要求3所述的方法,其中,
所述反交易操作要素包括:
针对所述第一配置对象的第一反交易操作要素,其中,所述第一反交易操作要素为所述第一正交易操作要素的逆操作;和/或
针对所述第二配置对象的第二反交易操作要素,其中,所述第二反交易操作要素为所述第二正交易操作要素的逆操作。
8.根据权利要求1所述的方法,其中,所述基于所述正交易配置要素,生成反交易配置要素包括:
响应于所述配置操作的执行异常,基于所述正交易配置要素,生成反交易配置要素。
9.一种分布式配置中心的配置装置,包括:
正交易配置要素获取模块,用于获取正交易配置要素,其中,所述正交易配置要素包括配置对象和针对所述配置对象的正交易操作要素;
正交易配置文件生成模块,用于基于所述正交易配置要素,生成具有预定格式的正交易配置文件,其中,所述正交易配置文件用于指示对所述配置对象执行配置操作;
正交易操作参数获取模块,用于解析所述正交易配置文件,以获得与所述分布式配置中心的配置接口对应的正交易操作参数;
配置操作执行模块,用于调用所述配置接口,以使得基于所述正交易操作参数对所述配置对象执行所述配置操作;
所述装置还包括:
反交易配置要素生成模块,用于基于所述正交易配置要素,生成反交易配置要素,其中,所述反交易配置要素包括所述配置对象和针对所述配置对象的反交易操作要素;
反交易配置文件生成模块,用于基于所述正交易配置文件,生成具有所述预定格式的反交易配置文件,其中,所述反交易配置文件用于指示对所述配置对象执行回滚操作;
反交易操作参数获取模块,用于解析所述反交易配置文件,以获得与所述分布式配置中心的配置接口对应的反交易操作参数;
回滚操作执行模块,用于调用所述配置接口,以使得基于所述反交易操作参数对所述配置对象执行所述回滚操作;
其中,正交易用于表征配置的执行,反交易用于表征配置的回滚。
10.一种电子设备,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序,
其中,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现权利要求1至8中任一项所述的方法。
11.一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现权利要求1至8中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011609973.7A CN112597134B (zh) | 2020-12-29 | 2020-12-29 | 分布式配置中心的配置方法、装置、电子设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011609973.7A CN112597134B (zh) | 2020-12-29 | 2020-12-29 | 分布式配置中心的配置方法、装置、电子设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112597134A CN112597134A (zh) | 2021-04-02 |
CN112597134B true CN112597134B (zh) | 2024-02-09 |
Family
ID=75206240
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011609973.7A Active CN112597134B (zh) | 2020-12-29 | 2020-12-29 | 分布式配置中心的配置方法、装置、电子设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112597134B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113722007B (zh) * | 2021-08-24 | 2023-11-03 | 杭州迪普科技股份有限公司 | Vpn分支设备的配置方法、装置及系统 |
CN115082247B (zh) * | 2022-08-19 | 2022-11-18 | 建信金融科技有限责任公司 | 基于标签库的系统投产方法、装置、设备、介质和产品 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040020725A (ko) * | 2002-09-03 | 2004-03-09 | 엘지전자 주식회사 | 네트워크 시스템 구성요소 자동 설정 방법 |
CN106354492A (zh) * | 2016-08-23 | 2017-01-25 | 深圳Tcl智能家庭科技有限公司 | 一种快速调整交易流程对接的自动化代码生成方法及系统 |
CN106502720A (zh) * | 2016-09-26 | 2017-03-15 | 海尔优家智能科技(北京)有限公司 | 一种数据处理方法和装置 |
CN108037952A (zh) * | 2017-11-30 | 2018-05-15 | 腾讯科技(成都)有限公司 | 对象操作的处理方法、对象操作数据的生成方法及装置 |
CN108304186A (zh) * | 2016-08-16 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 一种基于合成配置文件执行多项操作的方法与设备 |
CN109947645A (zh) * | 2019-03-08 | 2019-06-28 | 银清科技(北京)有限公司 | 自动化配置工具方法及系统 |
CN110825420A (zh) * | 2019-11-26 | 2020-02-21 | 中国银行股份有限公司 | 分布式集群的配置参数更新方法、装置、设备及存储介质 |
CN111142918A (zh) * | 2019-12-26 | 2020-05-12 | 天津津航计算技术研究所 | 一种可编程器件程序参数配置和流程控制方法 |
CN111429241A (zh) * | 2020-03-16 | 2020-07-17 | 中国建设银行股份有限公司 | 一种账务处理方法和装置 |
CN111427861A (zh) * | 2020-02-28 | 2020-07-17 | 云知声智能科技股份有限公司 | 分布式文件系统配置方法及装置 |
CN111736824A (zh) * | 2020-02-13 | 2020-10-02 | 北京京东尚科信息技术有限公司 | 应用程序的数据处理方法及装置、电子设备、存储介质 |
-
2020
- 2020-12-29 CN CN202011609973.7A patent/CN112597134B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040020725A (ko) * | 2002-09-03 | 2004-03-09 | 엘지전자 주식회사 | 네트워크 시스템 구성요소 자동 설정 방법 |
CN108304186A (zh) * | 2016-08-16 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 一种基于合成配置文件执行多项操作的方法与设备 |
CN106354492A (zh) * | 2016-08-23 | 2017-01-25 | 深圳Tcl智能家庭科技有限公司 | 一种快速调整交易流程对接的自动化代码生成方法及系统 |
CN106502720A (zh) * | 2016-09-26 | 2017-03-15 | 海尔优家智能科技(北京)有限公司 | 一种数据处理方法和装置 |
CN108037952A (zh) * | 2017-11-30 | 2018-05-15 | 腾讯科技(成都)有限公司 | 对象操作的处理方法、对象操作数据的生成方法及装置 |
CN109947645A (zh) * | 2019-03-08 | 2019-06-28 | 银清科技(北京)有限公司 | 自动化配置工具方法及系统 |
CN110825420A (zh) * | 2019-11-26 | 2020-02-21 | 中国银行股份有限公司 | 分布式集群的配置参数更新方法、装置、设备及存储介质 |
CN111142918A (zh) * | 2019-12-26 | 2020-05-12 | 天津津航计算技术研究所 | 一种可编程器件程序参数配置和流程控制方法 |
CN111736824A (zh) * | 2020-02-13 | 2020-10-02 | 北京京东尚科信息技术有限公司 | 应用程序的数据处理方法及装置、电子设备、存储介质 |
CN111427861A (zh) * | 2020-02-28 | 2020-07-17 | 云知声智能科技股份有限公司 | 分布式文件系统配置方法及装置 |
CN111429241A (zh) * | 2020-03-16 | 2020-07-17 | 中国建设银行股份有限公司 | 一种账务处理方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112597134A (zh) | 2021-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11561784B2 (en) | Versioning of pipeline templates for continuous delivery of services on datacenters configured in cloud platforms | |
US9262237B2 (en) | Automating software availability management based on API versioning | |
US7870482B2 (en) | Web browser extension for simplified utilization of web services | |
US11086763B2 (en) | Asynchronous consumer-driven contract testing in micro service architecture | |
CN110554876A (zh) | 用于编译安卓工程的方法和装置 | |
CN112597134B (zh) | 分布式配置中心的配置方法、装置、电子设备和介质 | |
US9633127B2 (en) | Deploying programs in a cluster node | |
CN110515647B (zh) | 一种静态资源管理方法、装置、设备和存储介质 | |
US11392366B1 (en) | Optimized compilation of pipelines for continuous delivery of services on datacenters configured in cloud platforms | |
CN117337429A (zh) | 部署机器学习模型 | |
US20150365308A1 (en) | Automatic transformation of messages between service versions | |
US9509761B2 (en) | Open user interface | |
CN114996337A (zh) | 多集群数据库管理系统及方法 | |
CN113468067B (zh) | 应用程序的调试方法、装置、电子设备和计算机可读介质 | |
CN115167874B (zh) | 自动驾驶软件镜像部署方法、装置、电子设备和可读介质 | |
CN113032004A (zh) | 在开发环境中管理开发作业的方法、设备和程序产品 | |
US11816177B2 (en) | Streaming static web page generation | |
CN108170557B (zh) | 用于输出信息的方法和装置 | |
CN113760723B (zh) | 一种业务流程调试方法和装置 | |
US11775356B2 (en) | Method and system for facilitating backwards compatibility of a rest API on an evolving data model | |
US11930084B2 (en) | Microservices based operating system | |
CN113468065B (zh) | 测试用例的运行方法及装置 | |
CN113296828B (zh) | 一种发布应用的方法、服务器和系统 | |
US20230401053A1 (en) | Software updates without downtime via an integration content mapper for integration services | |
CN108984189B (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 |