CN109714188B - 基于Zookeeper的配置数据管理方法、设备和存储介质 - Google Patents
基于Zookeeper的配置数据管理方法、设备和存储介质 Download PDFInfo
- Publication number
- CN109714188B CN109714188B CN201811303026.8A CN201811303026A CN109714188B CN 109714188 B CN109714188 B CN 109714188B CN 201811303026 A CN201811303026 A CN 201811303026A CN 109714188 B CN109714188 B CN 109714188B
- Authority
- CN
- China
- Prior art keywords
- zookeeper
- node
- configuration data
- configuration
- subdirectory
- 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
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请涉及大数据技术领域,公开了一种基于Zookeeper的配置数据管理方法、设备和存储介质。所述方法包括:为每个应用创建用于存放该应用的配置数据的Zookeeper目录节点;在所述Zookeeper目录节点下建立一个或多个Zookeeper子目录节点,其中,所述应用的配置数据包括一个或多个配置项,每个Zookeeper子目录节点用于存放所述一个或多个配置项中的一个配置项的数据;响应于所述Zookeeper目录节点下的配置数据的更新,使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据。通过本申请的各实施例,可以实现配置数据的集中式管理,简化了对配置数据资源的管理。
Description
技术领域
本发明涉及大数据领域,特别涉及一种基于Zookeeper的配置数据管理方法、装置、计算设备和计算机可读存储介质。
背景技术
通常,系统中可能存在多个应用,这多个应用中有些应用可能是分布式应用,即部署在多台机器上。目前,常用的配置数据管理方法是,在部署应用的每台机器上保存该应用的配置文件。这样,一旦要修改配置的时候就会非常麻烦,需要修改多个配置文件,而且容易产生不一致。
发明内容
为解决以上问题中的一个或多个,本发明实施例提供了一种基于Zookeeper的配置数据管理方法、装置、计算设备和计算机可读存储介质。
根据本申请的第一方面,提供一种基于Zookeeper的配置数据管理方法,其包括:
为每个应用创建用于存放该应用的配置数据的Zookeeper目录节点;
在所述Zookeeper目录节点下建立一个或多个Zookeeper子目录节点,其中,所述应用的配置数据包括一个或多个配置项,每个Zookeeper子目录节点用于存放所述一个或多个配置项中的一个配置项的数据;
响应于所述Zookeeper目录节点下的配置数据的更新,使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据。
根据一示例性实施例,所述响应于所述Zookeeper目录节点下的配置数据的更新、使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据包括:
使所述一个或多个客户端监听所述Zookeeper目录节点和所述一个或多个Zookeeper子目录节点;
响应于监听到所述Zookeeper目录节点下的配置数据发生了更新,所述一个或多个客户端从发生更新的Zookeeper子目录节点获取更新的配置项数据。
根据一示例性实施例,所述响应于所述Zookeeper目录节点下的配置数据的更新、使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据包括:
响应于所述Zookeeper目录节点或其Zookeeper子目录节点下的配置数据的更新,查询预先配置和保存的节点-更新下发地址对应表,以得到与发生配置项数据变更的Zookeeper目录节点或Zookeeper子目录节点相对应的更新下发地址;
将更新的配置数据下发到所述更新下发地址。
根据一示例性实施例,所述使所述一个或多个客户端监听所述Zookeeper目录节点和所述一个或多个Zookeeper子目录节点包括:
对于所述Zookeeper目录节点下的特定Zookeeper子目录节点,仅使所述一个或多个客户端中的特定客户端监听所述特定Zookeeper子目录节点。
根据一示例性实施例,所述响应于所述Zookeeper目录节点和/或其Zookeeper子目录节点下的配置数据的更新、将更新的配置数据下发到预先配置的地址包括:
在所述更新下发地址为特定地址的情况下,将包括全部配置项数据的更新的配置数据下发到所述特定地址。
根据一示例性实施例,所述配置数据管理方法还包括:
为所述Zookeeper目录节点和/或其Zookeeper子目录节点设置访问权限,使得只有指定的用户才有权限访问相应的Zookeeper目录节点和/或Zookeeper子目录节点。
根据一示例性实施例,所述配置数据管理方法还包括:
针对用户对配置数据的改变操作,判断所改变的配置项是否为新增配置项;
在所改变的配置项为新增配置项的情况下,在所述Zookeeper目录节点下新建Zookeeper子目录节点用于存放所述新增配置项数据;
在所改变的配置项不是新增配置项的情况下,更新所改变的配置项相对应的Zookeeper子目录节点下的配置项数据。
根据本申请的第二方面,提供一种基于Zookeeper的配置数据管理装置,其包括:
目录节点创建模块,其被配置为:为每个应用创建用于存放该应用的配置数据的Zookeeper目录节点;
子目录节点建立模块,其被配置为:在所述Zookeeper目录节点下建立一个或多个Zookeeper子目录节点,其中,所述应用的配置数据包括一个或多个配置项,每个Zookeeper子目录节点用于存放所述一个或多个配置项中的一个配置项的数据;
更新实施模块,其被配置为:响应于所述Zookeeper目录节点下的配置数据的更新,使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据。
根据一示例性实施例,所述更新实施模块包括:
监听单元,其被配置为:使所述一个或多个客户端监听所述Zookeeper目录节点和所述一个或多个Zookeeper子目录节点;
更新数据获取单元,其被配置为:响应于监听到所述Zookeeper目录节点下的配置数据发生了更新,所述一个或多个客户端从发生更新的Zookeeper子目录节点获取更新的配置项数据。
根据一示例性实施例,所述更新实施模块包括:
地址查询单元,其被配置为:响应于所述Zookeeper目录节点或其Zookeeper子目录节点下的配置数据的更新,查询预先配置和保存的节点-更新下发地址对应表,以得到与发生配置项数据变更的Zookeeper目录节点或Zookeeper子目录节点相对应的更新下发地址;
更新下发单元,其被配置为:将更新的配置数据下发到所述更新下发地址。
根据一示例性实施例,所述配置数据管理装置还包括更新写入模块,所述更新写入模块包括:
判断单元,其被配置为:针对用户对配置数据的改变操作,判断所改变的配置项是否为新增配置项;
新增写入单元,其被配置为:在所改变的配置项为新增配置项的情况下,在所述Zookeeper目录节点下新建Zookeeper子目录节点用于存放所述新增配置项数据;
改变写入单元,其被配置为:在所改变的配置项不是新增配置项的情况下,更新所改变的配置项相对应的Zookeeper子目录节点下的配置项数据。
根据一示例性实施例,所述更新下发单元包括:
全量数据下发单元,其被配置为:在所述更新下发地址为特定地址的情况下,将包括全部配置项数据的更新的配置数据下发到所述特定地址。
根据一示例性实施例,所述配置数据管理装置还包括:
权限设置模块,其被配置为:为所述Zookeeper目录节点和/或其Zookeeper子目录节点设置访问权限,使得只有指定的用户才有权限访问相应的Zookeeper目录节点和/或Zookeeper子目录节点。
根据本申请的第三方面,提供一种计算设备,所述计算设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时,使得所述计算设备执行如上所述的方法实施例中的任一个。
根据本申请的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被一个或多个处理器执行时实现如上所述的方法实施例中的任一个。
本申请的实施例提供的技术方案可以包括以下有益效果:
在本申请如上所述以及如下所述的各实施例中,通过将配置数据与应用本身分离开来,并将配置数据集中放置到Zookeeper目录节点上,可以实现配置数据的集中式管理。在一些实施例中,通过为配置数据的每个配置项建立一个Zookeeper子目录节点,可以方便地获知是哪个配置项发生了更新,使得只获取发生更新的配置项数据成为可能,从而减少数据传输量以及更新量,提高系统性能。另外,在一些实施例中,可以将更新的配置数据自动下发到预先配置的地址,简化配置数据的更新流程。此外,在一些实施例中,可以为Zookeeper目录节点和/或Zookeeper子目录节点设置访问权限,使得只有指定的用户才有权限访问,从而可以实现项目之间的配置隔离,做到项目配置的安全管理。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。
附图说明
图1是根据一示例性实施例示出的本申请所涉及的实施环境的示意简图。
图2是根据本申请一示例性实施例示出的基于Zookeeper的配置数据管理方法的示意流程图。
图3是根据本申请一示例性实施例示出的包括将配置数据更新写入Zookeeper目录节点过程的配置数据管理方法的示意流程图。
图4是根据图2对应实施例示出的配置数据管理方法中步骤S230的一示例具体实现方式的示意流程图。
图5是根据图2对应实施例示出的配置数据管理方法中步骤S230的另一示例具体实现方式的示意流程图。
图6是根据本申请一示例性实施例示出的基于Zookeeper的配置数据管理装置的示意组成框图。
图7是图6对应实施例示出的配置数据管理装置的更新实施模块630的另一示例性具体实现方式的示意组成框图。
图8是根据本申请一示例性实施例示出的计算设备的示意组成框图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明的示例性实施例进行进一步详细说明。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。应当理解,此处所描述的具体实施例仅仅用于解释本发明,并不用于限定本发明。
图1是根据一示例性实施例示出的本申请所涉及的实施环境的示意简图。如图1所示,系统中可能包含多个应用(例如,组成一个大的应用的多个微服务应用),每个应用部署在一个或多个客户端(client)110上。在图1的示例中示出了四个客户端110,应理解的是,系统可以包括更多或更少的客户端。为了集中管理这些应用的配置数据,组建Zookeeper服务集群120,其可以包括一个或多个(在图1的示例中示出了三个)服务器(server)121。应理解的是,Zookeeper服务集群120也可以是单机Zookeeper。为每个应用创建一个Zookeeper目录节点(znode),以用于存放其配置数据。在Zookeeper中,znode是一个跟Unix文件系统路径相似的节点,可以往这个节点存储或获取数据。在一个示例中,将应用的配置数据保存在某个Zookeeper目录节点中,然后使部署该应用的客户端监控该Zookeeper目录节点中的数据变化,一旦监控到数据变化,这些客户端就从该Zookeeper目录节点中获取新的配置数据并实施到应用中。通常,配置数据由一个或多个配置项数据组成。在一个示例中(如图1中所示),可以通过统一的配置数据管理中心130对配置数据进行管理,例如,删除、改变或增加配置项。可选地,配置数据管理中心130可以提供交互性的用户操作界面,以便于用户通过该用户操作界面对配置数据进行操作。配置数据管理中心130接收用户对配置数据所做的更新操作,并将相应的更新写入Zookeeper目录节点中的配置数据中。
图1及以上描述只是本申请所涉及的实施环境的示例性实施例,可以理解的是,适用于本申请的实施环境存在多种变形。
图2是根据本申请一示例性实施例示出的基于Zookeeper的配置数据管理方法的示意流程图。如图2的示例性实施例所示,该方法可以包括步骤:
S210,为每个应用创建用于存放该应用的配置数据的Zookeeper目录节点。
如在对图1的描述中所述,系统中可能存在一个或多个诸如微服务应用的应用,为了统一管理这些应用的配置数据,组建Zookeeper服务集群,并将这些应用的配置数据存放到Zookeeper服务集群的Zookeeper目录节点中。为了便于管理,为每个应用分配一个相应的Zookeeper目录节点。在一个示例中,该Zookeeper目录节点为该应用专有,只用于存放该应用的配置数据,而不会存放其他应用的配置数据。在一个示例中,也可以为每个应用分配多个专有的Zookeeper目录节点。
S220,在所述Zookeeper目录节点下建立一个或多个Zookeeper子目录节点,每个Zookeeper子目录节点用于存放所述应用的配置数据的一个配置项的数据。
一个应用的配置数据可以包括一个或多个配置项。在Zookeeper目录节点下可以建立一个或多个层级的子目录节点。在本示例中,为配置数据的每个配置项在所述Zookeeper目录节点下建立一个Zookeeper子目录节点,用于存放该配置项数据的文件,而在Zookeeper目录节点这个路径下并不直接存放配置数据。在一个示例中,这些Zookeeper子目录节点可以在Zookeeper目录节点下的一个子目录节点层级中。在另一示例中,这些Zookeeper子目录节点可以在多个子目录节点层级中。每个Zookeeper目录节点和每个Zookeeper子目录节点在Zookeeper文件系统中的路径都是唯一的。
在一些实施例中,可以为Zookeeper目录节点和/或Zookeeper子目录节点设置访问权限,使得只有指定的用户才有权限访问,从而可以实现项目之间的配置隔离,做到项目配置的安全管理。
S230,响应于所述Zookeeper目录节点下的配置数据的更新,使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据。
在获取Zookeeper目录节点中的配置数据时,可以按照各Zookeeper目录节点和Zookeeper子目录节点的路径去获取配置项数据。如上所述,由于每个配置项都有自己对应的Zookeeper子目录节点,因此,当某个配置项的数据发生了改变,反映为某Zookeeper子目录节点发生了数据变化,则相应的客户端可以仅获取该Zookeeper子目录节点下的数据,而不获取其他Zookeeper子目录节点下未发生更新的配置项数据。这样,使得无需获取全量的配置数据,而只获取更新的增量数据即可,减小了数据的传输量和更新实施量,提高了系统的性能和效率。
在另一示例中,为了其他目的和用途(例如为了测试目的),在配置数据发生了更新时,客户端可以获取对应Zookeeper目录节点中的全量配置数据。
图3是根据本申请一示例性实施例示出的包括将配置数据更新写入Zookeeper目录节点的过程的配置数据管理方法的示意流程图。如图3的示例性实施例所示,该方法还可以包括步骤:
S310,针对用户对配置数据的改变操作,判断所改变的配置项是否为新增配置项。
如在对图1的描述中所述,用户可以通过配置数据管理中心130的用户操作界面来对配置数据进行操作。步骤S310、S320和S330可以由配置数据管理中心130来执行。如在上面的一个示例中所述,由于Zookeeper集群服务是按照配置项来存放配置数据的,因此,如果对配置数据的操作是新增了配置项数据,则需要先在应用对应的Zookeeper目录节点下新建Zookeeper子目录节点,然后将新增的配置项数据放置在该Zookeeper子目录节点下,即进入步骤S320。如果对配置数据的操作是对原有配置项的数据变更或删除,则用该原有配置项的更新数据代替其对应Zookeeper子目录节点下的原配置项数据。
S320,在所改变的配置项为新增配置项的情况下,在所述Zookeeper目录节点下新建Zookeeper子目录节点用于存放所述新增配置项数据。
S330,在所改变的配置项不是新增配置项的情况下,更新所改变的配置项相对应的Zookeeper子目录节点下的配置项数据。
在一个示例中,在配置数据管理中心130中保存有配置项与Zookeeper子目录节点的对应表,配置数据管理中心130通过查询该对应表找到与所改变的配置项相对应的Zookeeper子目录节点,并将更新数据覆盖写入该Zookeeper子目录节点下的配置项文件中。
关于将更新的配置实施到客户端上(步骤S230),可以有多种具体实施方式,图4和图5分别示出了其中一种示例性具体实施方式。如在图4的实施例中所示,步骤S230可以包括:
S410,使应用的一个或多个客户端监听相应的Zookeeper目录节点及其Zookeeper子目录节点。
为了将Zookeeper目录节点中的配置数据的更新实施到客户端,在图4所示的示例中,可以使其上部署有该应用的一个或多个客户端监听与该应用相对应的Zookeeper目录节点及其Zookeeper子目录节点。在一个示例中,所有部署有该应用的客户端都监听该Zookeeper目录节点及其所有Zookeeper子目录节点,以使得所有客户端都能监听到所有配置数据的更新,从而在所有客户端上使用统一的配置数据。在另一示例中,在部署有该应用的客户端中,有些客户端可能有自己的特殊配置项需求,而其他客户端不需要该特殊配置项。在这种情况下,在应用对应的Zookeeper目录节点下为特殊配置项建立特定的Zookeeper子目录节点,用于存放该特殊配置项数据,并且将这个特定的Zookeeper子目录节点指定给有需求的客户端,使得只有指定的客户端监听这个Zookeeper子目录节点,其他客户端不监听。当这个Zookeeper子目录节点下的配置项文件发生更新时,只有指定的客户端监听到并去获取更新。
在一个实施例中,需要监听相应的Zookeeper目录节点及其Zookeeper子目录节点的客户端可以在Zookeeper服务集群中注册Watcher,并指明要监听的路径(即要监听的Zookeeper目录节点和Zookeeper子目录节点的路径),当所监听的路径下发生了配置数据更新事件时,会触发Watcher,从而向客户端发送事件通知,使得客户端知晓哪个Zookeeper目录节点和Zookeeper子目录节点发生了配置数据更新。
S420,响应于监听到Zookeeper目录节点中的配置数据发生了更新,所述一个或多个客户端从发生更新的Zookeeper子目录节点获取更新的配置项数据。
Zookeeper目录节点下可以包括一个或多个Zookeeper子目录节点,任何一个Zookeeper子目录节点下的配置项数据发生了更新、或者在Zookeeper目录节点下新增了Zookeeper子目录节点,都可以称为是Zookeeper目录节点中的配置数据发生了更新。在一个示例中,为了减少数据获取和传输量,一般地,客户端仅增量地获取发生更新的数据。
图5示出了步骤S230的另一示例性具体实施方式。如图5所示,步骤S230可以包括:
S510,响应于Zookeeper目录节点或其Zookeeper子目录节点下的配置数据的更新,查询预先配置和保存的节点-更新下发地址对应表,以得到与发生配置项数据变更的Zookeeper目录节点或Zookeeper子目录节点相对应的更新下发地址。
如在图1的描述中所述,可以通过统一的配置数据管理中心130来管理配置数据。在一个示例中,可以在配置数据管理中心130中预先配置并保存每个Zookeeper目录节点或每个Zookeeper子目录节点的更新下发地址的对应表,当由于用户通过配置数据管理中心130的操作而使得配置数据发生了更新时,配置数据管理中心130可以根据发生数据变更的Zookeeper目录节点或Zookeeper子目录节点查询该对应表,以得到要将更新的数据下发到的地址。
在一个示例中,配置数据管理中心130所保存的对应表中记载了Zookeeper目录节点与其更新下发地址之间的对应关系,其中,每个Zookeeper目录节点下的任意Zookeeper子目录节点中的配置项数据发生了变更,都将更新数据下发到与该Zookeeper目录节点对应的更新下发地址。在另一示例中,在对应表中记载的是每个Zookeeper子目录节点与其更新下发地址之间的对应关系,其中,当某个Zookeeper子目录节点下的配置项数据发生了变更时,将更新数据下发到与该Zookeeper子目录节点相对应的更新下发地址。
在一个示例中,更新下发地址为部署有该应用的所有或部分客户端的IP地址。
S520,将更新的配置数据下发到所述更新下发地址。
在一个示例中,配置数据管理中心130可以从相应的Zookeeper子目录节点获取增量更新数据并将其下发到具有所述更新下发地址的客户端。
在另一示例中,存在这样的情况:当改变了一个配置项数据时,有时会希望先测试一下效果,这时需要先将配置数据下发到测试客户端上测试,测试客户端可能需要使用全部配置数据进行初始配置。在这样的情形下,可以为某些或全部子目录节点设置对应于测试客户端的更新下发地址,并且设定在更新下发地址为指定的测试客户端地址时要获取全部配置数据并将其下发到该测试客户端。因此,在一个示例中,在步骤S520中,判断更新下发地址是否为特定地址,在更新下发地址为特定地址的情况下,将包括全部配置项数据的更新的配置数据下发到所述特定地址。
可选地,可以将更新的配置数据的下发设置为定时进行,例如,每天固定时间点将配置数据下发到客户端/测试客户端。
根据本申请的另一方面,还公开了基于Zookeeper的配置数据管理装置。图6是根据本申请一示例性实施例示出的配置数据管理装置的示意组成框图。该装置601用于执行如上所述的配置数据管理方法的各实施例。如图6所示,示例配置数据管理装置601包括:
目录节点创建模块610,其被配置为:为每个应用创建用于存放该应用的配置数据的Zookeeper目录节点;
子目录节点建立模块620,其被配置为:在所述Zookeeper目录节点下建立一个或多个Zookeeper子目录节点,其中,所述应用的配置数据包括一个或多个配置项,每个Zookeeper子目录节点用于存放所述一个或多个配置项中的一个配置项的数据;
更新实施模块630,其被配置为:响应于所述Zookeeper目录节点下的配置数据的更新,使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据。
根据图6所示的实施例,更新实施模块630可以包括:
监听单元631,其被配置为:使所述一个或多个客户端监听所述Zookeeper目录节点和所述一个或多个Zookeeper子目录节点;
更新数据获取单元632,其被配置为:响应于监听到所述Zookeeper目录节点下的配置数据发生了更新,所述一个或多个客户端从发生更新的Zookeeper子目录节点获取更新的配置项数据。
根据图6所示的实施例,装置601还可以包括更新写入模块640,所述更新写入模块640包括:
判断单元641,其被配置为:针对用户对配置数据的改变操作,判断所改变的配置项是否为新增配置项;
新增写入单元642,其被配置为:在所改变的配置项为新增配置项的情况下,在所述Zookeeper目录节点下新建Zookeeper子目录节点用于存放所述新增配置项数据;
改变写入单元643,其被配置为:在所改变的配置项不是新增配置项的情况下,更新所改变的配置项相对应的Zookeeper子目录节点下的配置项数据。
根据图6所示的实施例,装置601还可以包括:
权限设置模块650,其被配置为:为所述Zookeeper目录节点和/或其Zookeeper子目录节点设置访问权限,使得只有指定的用户才有权限访问相应的Zookeeper目录节点和/或Zookeeper子目录节点。
图7示出了更新实施模块630的另一示例性实施方式的示意组成框图。如图7中的实施例所示,更新实施模块630包括:
地址查询单元633,其被配置为:响应于所述Zookeeper目录节点或其Zookeeper子目录节点下的配置数据的更新,查询预先配置和保存的节点-更新下发地址对应表,以得到与发生配置项数据变更的Zookeeper目录节点或Zookeeper子目录节点相对应的更新下发地址;
更新下发单元634,其被配置为:将更新的配置数据下发到所述更新下发地址。
根据图7所示的实施例,更新下发单元634可以进一步包括:
全量数据下发单元6341,其被配置为:在所述更新下发地址为特定地址的情况下,将包括全部配置项数据的更新的配置数据下发到所述特定地址。
上述装置中各个单元/模块的功能和作用的实现过程以及相关细节具体详见上述方法实施例中对应步骤的实现过程,在此不再赘述。
以上各实施例中的装置实施例可以通过硬件、软件、固件或其组合的方式来实现,并且其可以被实现为一个单独的装置,也可以被实现为各组成单元/模块分散在一个或多个计算设备中并分别执行相应功能的逻辑集成系统。
以上各实施例中组成该装置的各单元/模块是根据逻辑功能而划分的,它们可以根据逻辑功能被重新划分,例如可以通过更多或更少的单元/模块来实现该装置。这些组成单元/模块分别可以通过硬件、软件、固件或其组合的方式来实现,它们可以是分别的独立部件,也可以是多个组件组合起来执行相应的逻辑功能的集成单元/模块。所述硬件、软件、固件或其组合的方式可以包括:分离的硬件组件,通过编程方式实现的功能模块、通过可编程逻辑器件实现的功能模块,等等,或者以上方式的组合。
根据一个示例性实施例,该装置可被实现为一种计算设备,该计算设备包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时,使得所述计算设备执行如上所述的各方法实施例中的任一个,或者,所述计算机程序在被所述处理器执行时使得该计算设备实现如上所述的各装置实施例的组成单元/模块所实现的功能。
上面的实施例中所述的处理器可以指单个的处理单元,如中央处理单元CPU,也可以是包括多个分散的处理单元/处理器的分布式处理器系统。
上面的实施例中所述的存储器可以包括一个或多个存储器,其可以是计算设备的内部存储器,例如暂态或非暂态的各种存储器,也可以是通过存储器接口连接到计算设备的外部存储装置。
图8示出了这样的计算设备801的一个示例性实施例的示意组成框图。如图8所示,计算设备801可以包括:处理器810、通信接口820、存储器830和总线840。存储器830内存储有可被处理器810执行的计算机程序。处理器810执行所述计算机程序时实现上述实施例中的方法及装置的功能。存储器830和处理器810的数量分别可以为一个或多个。通信接口820用于处理器810与外部设备之间的通信。
其中,处理器810可以是中央处理单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本发明公开内容所描述的各种示例性的流程步骤、功能单元/模块和/或电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合、数字信号处理器等等。
存储器830可以包括易失性存储器和/或非易失性存储器,例如非易失性动态随机存取存储器、相变随机存取存储器、磁阻式随机存取存储器、磁盘存储器、电子可擦除可编程只读存储器、闪存器件、半导体器件(例如固态硬盘)等。存储器830可选地还可以是外部远程存储装置。
总线840可以是工业标准体系结构(ISA,Industry Standard Architecture)总线、外部设备互连(PCI,Peripheral Component)总线或扩展工业标准体系结构(EISA,Extended Industry Standard Component)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。可选地,如果存储器830、处理器810及通信接口820集成在一块芯片上,则存储器830、处理器810及通信接口820可以通过内部接口完成相互间的通信。
以上各方法和装置实施例还可以被实现为计算机程序的形式,被存储在存储介质上,并且可被分发。因此,根据本公开的另一方面,还提供一种计算机程序产品,该计算机程序产品被存储在计算机可读存储介质上,并且在被处理器执行时实现如上所述的各方法和装置实施例中的任一个。根据本公开的又一方面,还提供一种计算机可读存储介质,其上存储有可供处理器执行的计算机程序,所述计算机程序在被处理器执行时实现如上所述的各方法和装置实施例中的任一个。
该计算机可读存储介质可以是任何可以保持和存储可由指令执行设备使用的指令的有形设备。例如,其可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机程序/计算机指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
本公开中所述的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。但本领域技术人员应当清楚的是,上述各实施例可以根据需要单独使用或者相互结合使用。另外,对于装置实施例而言,由于其是与方法实施例相对应,所以描述得比较简单,相关之处参见方法实施例的对应部分的说明即可。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于Zookeeper的配置数据管理方法,其特征在于,包括:
为每个应用创建用于存放该应用的配置数据的Zookeeper目录节点;
在所述Zookeeper目录节点下建立一个或多个Zookeeper子目录节点,其中,所述应用的配置数据包括一个或多个配置项,每个Zookeeper子目录节点用于存放所述一个或多个配置项中的一个配置项的数据;
响应于所述Zookeeper目录节点下的配置数据的更新,使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据,包括:
使所述一个或多个客户端监听所述Zookeeper目录节点和所述一个或多个Zookeeper子目录节点;
响应于监听到所述Zookeeper目录节点下的配置数据发生了更新,所述一个或多个客户端从发生更新的Zookeeper子目录节点仅获取更新的配置项数据,以减少数据获取和传输量。
2.如权利要求1所述的配置数据管理方法,其特征在于,所述响应于所述Zookeeper目录节点下的配置数据的更新、使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据还包括:
响应于所述Zookeeper目录节点或其Zookeeper子目录节点下的配置数据的更新,查询预先配置和保存的节点-更新下发地址对应表,以得到与发生配置项数据变更的Zookeeper目录节点或Zookeeper子目录节点相对应的更新下发地址;
将更新的配置数据下发到所述更新下发地址。
3.如权利要求1所述的配置数据管理方法,其特征在于,所述使所述一个或多个客户端监听所述Zookeeper目录节点和所述一个或多个Zookeeper子目录节点包括:
对于所述Zookeeper目录节点下的特定Zookeeper子目录节点,仅使所述一个或多个客户端中的特定客户端监听所述特定Zookeeper子目录节点。
4.如权利要求2所述的配置数据管理方法,其特征在于,所述响应于所述Zookeeper目录节点和/或其Zookeeper子目录节点下的配置数据的更新、将更新的配置数据下发到预先配置的地址包括:
在所述更新下发地址为特定地址的情况下,将包括全部配置项数据的更新的配置数据下发到所述特定地址。
5.如权利要求1所述的配置数据管理方法,其特征在于,还包括:
为所述Zookeeper目录节点和/或其Zookeeper子目录节点设置访问权限,使得只有指定的用户才有权限访问相应的Zookeeper目录节点和/或Zookeeper子目录节点。
6.如权利要求1-5中任一项所述的配置数据管理方法,其特征在于,还包括:
针对用户对配置数据的改变操作,判断所改变的配置项是否为新增配置项;
在所改变的配置项为新增配置项的情况下,在所述Zookeeper目录节点下新建Zookeeper子目录节点用于存放所述新增配置项数据;
在所改变的配置项不是新增配置项的情况下,更新所改变的配置项相对应的Zookeeper子目录节点下的配置项数据。
7.一种基于Zookeeper的配置数据管理装置,其特征在于,包括:
目录节点创建模块,其被配置为:为每个应用创建用于存放该应用的配置数据的Zookeeper目录节点;
子目录节点建立模块,其被配置为:在所述Zookeeper目录节点下建立一个或多个Zookeeper子目录节点,其中,所述应用的配置数据包括一个或多个配置项,每个Zookeeper子目录节点用于存放所述一个或多个配置项中的一个配置项的数据;
更新实施模块,其被配置为:响应于所述Zookeeper目录节点下的配置数据的更新,使所述应用的一个或多个客户端获得所述Zookeeper目录节点下的更新的配置数据;使所述一个或多个客户端监听所述Zookeeper目录节点和所述一个或多个Zookeeper子目录节点;以及,响应于监听到所述Zookeeper目录节点下的配置数据发生了更新,所述一个或多个客户端从发生更新的Zookeeper子目录节点仅获取更新的配置项数据,以减少数据获取和传输量。
8.一种计算设备,其包括存储器和处理器,所述存储器中存储有计算机程序,所述计算机程序在被所述处理器执行时,使得所述计算设备执行如权利要求1至6中任一项所述的配置数据管理方法。
9.一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序在被一个或多个处理器执行时实现如权利要求1至6中任一项所述的配置数据管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811303026.8A CN109714188B (zh) | 2018-11-02 | 2018-11-02 | 基于Zookeeper的配置数据管理方法、设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811303026.8A CN109714188B (zh) | 2018-11-02 | 2018-11-02 | 基于Zookeeper的配置数据管理方法、设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109714188A CN109714188A (zh) | 2019-05-03 |
CN109714188B true CN109714188B (zh) | 2023-06-20 |
Family
ID=66254745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811303026.8A Active CN109714188B (zh) | 2018-11-02 | 2018-11-02 | 基于Zookeeper的配置数据管理方法、设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109714188B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795399B (zh) * | 2019-09-29 | 2023-11-14 | 北京淇瑀信息科技有限公司 | 一种为应用产生机器id的方法、装置和系统 |
CN112367410B (zh) * | 2021-01-14 | 2021-03-30 | 广州技象科技有限公司 | 一种运行参数管理方法及装置 |
CN114840264A (zh) * | 2021-01-14 | 2022-08-02 | 宝能汽车集团有限公司 | 配置数据管理方法、配置数据管理装置和车辆管理系统 |
CN112882738A (zh) * | 2021-03-22 | 2021-06-01 | 亿企赢网络科技有限公司 | 一种微服务架构下的配置信息更新方法、装置及电子设备 |
CN113377397A (zh) * | 2021-05-27 | 2021-09-10 | 深圳十方融海科技有限公司 | 配置更新方法、装置、计算机设备及存储介质 |
CN114924806B (zh) * | 2022-04-07 | 2024-03-26 | 南京慧尔视软件科技有限公司 | 一种配置信息的动态同步方法、装置、设备及介质 |
CN115022318B (zh) * | 2022-05-30 | 2023-08-29 | 在线途游(北京)科技有限公司 | 一种基于微服务架构的消息发布方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375342A (zh) * | 2016-10-21 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于zookeeper技术的系统集群方法及系统 |
CN108599971A (zh) * | 2017-12-22 | 2018-09-28 | 金蝶软件(中国)有限公司 | 配置信息处理方法、系统、计算机设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9524396B2 (en) * | 2009-04-16 | 2016-12-20 | International Business Machines Corporation | System that maintains objects created and modified within designated directories on a per-client basis in a network filesystem |
CN103500111B (zh) * | 2013-10-11 | 2016-09-28 | 北京奇虎科技有限公司 | 一种基于zookeeper的信息配置方法及装置 |
CN106603281A (zh) * | 2016-12-07 | 2017-04-26 | 乐视控股(北京)有限公司 | 配置文件管理方法及系统 |
CN107864053B (zh) * | 2017-10-31 | 2022-02-22 | 北京小米移动软件有限公司 | 基于zookeeper的动态配置方法和装置 |
-
2018
- 2018-11-02 CN CN201811303026.8A patent/CN109714188B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106375342A (zh) * | 2016-10-21 | 2017-02-01 | 用友网络科技股份有限公司 | 一种基于zookeeper技术的系统集群方法及系统 |
CN108599971A (zh) * | 2017-12-22 | 2018-09-28 | 金蝶软件(中国)有限公司 | 配置信息处理方法、系统、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN109714188A (zh) | 2019-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109714188B (zh) | 基于Zookeeper的配置数据管理方法、设备和存储介质 | |
CN108513657B (zh) | 数据转换方法及备份服务器 | |
US9116775B2 (en) | Relationship-based dynamic firmware management system | |
US20160149766A1 (en) | Cloud based management of storage systems | |
US10354215B2 (en) | System and method for service modeling | |
US11336748B2 (en) | System and method for deploying resources within a computing infrastructure | |
EP2984551A1 (en) | Creating global aggregated namespaces for storage management | |
US10726140B2 (en) | System and method for configuration management database governance | |
US11336588B2 (en) | Metadata driven static determination of controller availability | |
CN111246397B (zh) | 集群系统、服务访问方法、装置及服务器 | |
CN113141405B (zh) | 服务访问方法、中间件系统、电子设备和存储介质 | |
CN105490843A (zh) | 一种信息处理方法及系统 | |
US20140250069A1 (en) | Systems and methods for selectively synchronizing files | |
CN111581239A (zh) | 缓存刷新方法和电子设备 | |
US10439897B1 (en) | Method and apparatus for enabling customized control to applications and users using smart tags | |
US20200257809A1 (en) | Managing the sharing of common library packages with subscribers | |
CN111428114A (zh) | Elasticsearch搜索引擎的索引创建方法及装置 | |
US9621424B2 (en) | Providing a common interface for accessing and presenting component configuration settings | |
CN116208676A (zh) | 数据回源方法、装置、计算机设备、存储介质和程序产品 | |
CN110347751B (zh) | 管理cdn系统业务属性的方法及装置 | |
US10712959B2 (en) | Method, device and computer program product for storing data | |
CN109471894B (zh) | 一种新型分散式文件与对象统一存储的系统及方法 | |
CN115485677A (zh) | 在分布式数据存储环境中的安全数据复制 | |
CN105677692A (zh) | 实时提供信息查询的信息系统与方法 | |
US10200242B2 (en) | System and method to replicate server configurations across systems using sticky attributions |
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 |