CN110113181B - 节点配置方法、装置、计算机装置、及可读存储介质 - Google Patents
节点配置方法、装置、计算机装置、及可读存储介质 Download PDFInfo
- Publication number
- CN110113181B CN110113181B CN201910190300.3A CN201910190300A CN110113181B CN 110113181 B CN110113181 B CN 110113181B CN 201910190300 A CN201910190300 A CN 201910190300A CN 110113181 B CN110113181 B CN 110113181B
- Authority
- CN
- China
- Prior art keywords
- node
- request
- slave
- master node
- master
- 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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/02—Standardisation; Integration
- H04L41/0246—Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0876—Aspects of the degree of configuration automation
- H04L41/0886—Fully automatic configuration
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Automation & Control Theory (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明提供一种节点配置方法,包括:接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点;当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;及当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。本发明还提供实现所述节点配置方法的装置、计算机装置、及可读存储介质。本发明可以解决测试人员需要手动对节点配置的技术问题。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种节点配置方法、装置、计算机装置、及可读存储介质。
背景技术
zookeeper是google开源的分布式应用程序协调服务,很多公司项目都使用到。如果在测试场景遇到修改配置某项节点,需要到web的管理后台手动修改。这样操作不便,测试时间拉长,且不便于后续业务的自动化测试。
发明内容
鉴于以上内容,有必要提出一种节点配置方法、装置、计算机装置、及可读存储介质,用以解决测试人员需要手动对节点配置的技术问题。
本发明的第一方面提供一种节点配置方法,所述方法包括:
接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;
根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点;
当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;及
当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。
优选地,所述方法还包括步骤:
获取所述请求的请求结果,并对请求结果进行验证。
优选地,所述获取所述请求的请求结果,并对请求结果进行验证包括:
调用getData函数获取所述请求所包括的节点标识所对应的数据;
将所获取的数据与预设的数据进行比较;
当所获取的数据与预设的数据一致,则确定请求结果正确,当所获取的数据与预设的数据不一致,则确定请求结果错误,并发出警示。
优选地,所述预设的多种操作类型包括增加节点、删除节点、更新节点所对应的数据,其中,所述请求调用函数create增加节点,调用函数delete删除节点,调用函数set更新节点。
优选地,所述根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点包括:
遍历所述分布式系统所包含的节点,预先对所有的节点进行标记,每个节点对应一个标识;及
当接收到所述请求时,根据所述请求的操作类型的参数信息所包含的节点标识确定所述请求所对应的节点是主节点还是从节点。
优选地,所述根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点包括:
根据所述请求的操作类型的参数信息所包括的预设字符识别所述参数信息中所包含的字段数;
当所述参数信息所包含的字段数为预设值时,确定所述请求所对应的节点是主节点;及
当所述参数信息所包含的字段数大于所述预设值时,确定所述请求所对应的节点是从节点。
优选地,当根据所获取的状态信息生成对应所述从节点的新的配置信息后,所述方法还包括:
控制所述主节点将对应所述从节点的新的配置信息发送给各从节点。
本发明第二方面提供一种计算机装置,所述计算机装置包括存储器和处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令时实现所述节点配置方法。
本发明第三方面提供一种计算机可读存储介质,其上存储有至少一个指令,所述至少一个指令被处理器执行时实现所述节点配置方法。
本发明第四方面提供一种节点配置装置,所述装置包括:
接收模块,用于接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;
执行模块,用于根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点;
所述执行模块,还用于当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;及
所述执行模块,还用于当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。
本发明实施例中所述的节点配置方法、装置、计算机装置、及可读存储介质,通过接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点;当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;及当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。本发明节约了测试人员修改配置zookeeper节点的时间,方便进行自动化测试。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1是本发明实施例一提供的节点配置方法的流程图。
图2是本发明实施例二提供的节点配置装置的结构图。
图3是本发明实施例三提供的计算机装置的示意图。
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施例对本发明进行详细描述。需要说明的是,在不冲突的情况下,本发明的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。
实施例一
图1是本发明实施例一提供的节点配置方法的流程图。
在本实施例中,所述节点配置方法可以应用于计算机装置中,对于需要进行节点配置的计算机装置,可以直接在计算机装置上集成本发明的方法所提供的用于节点配置功能,或者以软件开发工具包(Software Development Kit,SDK)的形式运行在计算机装置上。
在一个实施例中,所述计算机装置可以为Zookeeper服务器。
如图1所示,所述节点配置方法具体包括以下步骤,根据不同的需求,该流程图中步骤的顺序可以改变,某些步骤可以省略。
步骤S100,接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种。
本实施例中,所述分布式系统可以为Zookeeper分布式系统。在一个实施例中,所述分布式系统可包括若干集群,每一集群可包括一个主节点及若干个从节点,所述从节点与所述主节点进行通信。其中,主节点可负责进行投票的发起和决议、更新系统的配置信息等,从节点可接收客户端发送的所述请求,但执行所述请求的权限仅由主节点决定。因此,当从节点接收到客户端发送的请求时,从节点可将所述请求转发给所述主节点,并由所述主节点来执行。
本实施例中,所述主节点及从节点均具有节点标识,如节点标识1、节点标识2、节点标识3等。对于Zookeeper分布式系统而言,其节点的节点标识可由其所在的路径进行识别,其从节点均位于主节点所在的路径上。
例如,主节点的路径可为“/BIZ/CONFIG”,第一从节点的路径可为“/BIZ/CONFIG/feeds”,第二从节点的路径可为“/BIZ/CONFIG/feeds/name”,其中第二从节点的路径位于所述第一从节点的路径内,第三从节点的路径可为“/BIZ/CONFIG/feed”,其与第二从节点并列地位于所述主节点的路径下。所述分布式系统中的每一节点可存储有对应的数据,在节点创建时即可进行设置,例如可通过create函数来对节点的数据进行设置。
在分布式系统中,为保证主节点与从节点之间的一致性,所述主节点与从节点会通过对应的配置信息来进行同步。例如当主节点或从节点中存在一节点的信息发生变化时,可通过更新配置信息来保持主节点与从节点之间的一致性。
本实施例中,所述预设的多种操作类型可包括,但不限于,增加节点、删除节点、更新节点所对应的数据等,其中,所述请求可调用函数create增加节点,调用函数delete删除节点,调用函数set更新节点。
本实施方式中,客户端可通过远程连接到Zookeeper服务器。可以理解地,Zookeeper服务器可具有主机地址、端口号等连接信息。进而,客户端通过远端连接于Zookeeper服务器时需要设置对应的连接信息。较佳地,客户端可通过Python中的第三方库KazooClient来连接Zookeeper服务器。例如,实例化对象zk=ZkClient(host,port,timeout),其中host表示主机地址,port表示端口号,timeout表示连接超时。
当客户端连接到Zookeeper服务器时,客户端可向Zookeeper服务器发送一种请求,该请求的类型为所述预设的多种操作类型中的一种。例如,客户端可通过函数result=zk.set(path,value='pingan')来发送请求,其中函数set中的参数path表示节点的路径,亦是节点的节点标识。
步骤S102,根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点。当所述请求所对应的节点是主节点时,执行步骤S104。当所述请求所对应的节点是从节点时,执行步骤S106。
在一个实施例中,可于接收到客户端发送的所述请求时,根据所述请求的操作类型的参数信息确定所述请求所对应的节点是主节点还是从节点。其中,所述请求的操作类型的参数信息包括节点标识。
在第一实施例中,所述根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点包括步骤(a1)-(a2):
(a1)遍历所述分布式系统所包含的节点,预先对所有的节点进行标记,每个节点对应一个标识,例如将节点标记为主节点或是从节点。
(a2)当接收到所述请求时,根据所述请求的操作类型的参数信息所包含的节点标识来确定所述请求所对应的节点是主节点还是从节点。
在第二实施例中,可根据所述请求的操作类型的参数信息的格式来确定所述请求所对应的节点是主节点还是从节点。
具体地,所述根据所述请求的操作类型的参数信息的格式来确定所述请求所对应的节点是主节点还是从节点包括步骤(b1)-(b3):
(b1)根据所述请求的操作类型的参数信息所包括的预设字符(例如“/”)识别所述参数信息中所包含的字段数。
举例而言,主节点的路径为“/BIZ/CONFIG”,那么主节点对应的字段数为2。第一从节点的路径为“/BIZ/CONFIG/feeds”,则第一从节点对应的字段数为3。
(b2)当所述参数信息所包含的字段数为预设值(例如2)时,确定所述请求所对应的节点是主节点。
(b3)当所述参数信息所包含的字段数大于所述预设值(例如2)时,确定所述请求所对应的节点是从节点。
仍然以前述例子为例,当所述参数信息所包含的字段数为2时,则可确定所述请求所对应的节点是主节点。当所述参数信息所包含的字段数大于2时,则可确定所述请求所对应的节点是从节点。
步骤S104,当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息。
在一实施方式中,当客户端将所述请求发送到所述集群后,可利用所述主节点接收所述请求或利用从节点接收所述请求。因此,当利用从节点接收到所述请求后,可利用所述从节点将所述请求转发给所述主节点,以利用所述主节点来执行所述请求。
需要说明的是,可利用从节点执行更新节点状态信息的操作。因此,当所述请求对应的是读取节点的状态信息操作时,可利用所述从节点执行所述请求,即利用所述从节点读取节点的状态信息,将所读取的状态信息返回给客户端。
在一实施方式中,当所述请求所对应的节点是主节点时,可利用所述主节点直接执行所述请求。例如,接收到函数包含result=zk.set(‘/BIZ/CONFIG’,value='pingan')的请求时,控制所述主节点直接将其数据更新为'pingan'。
当执行完所述请求后,利用所述主节点生成对应的新的配置信息,如将主节点的数据更新为最新的,以得到新的配置信息。之后,控制所述主节点将对应所述从节点的新的配置信息发送给各从节点,以使得各从节点与所述主节点保持相同的配置信息。由于主节点的状态信息(如主节点的数据)发生变化,对于其他客户端需要获取主节点的状态信息时,如发送请求到集群的从节点,为更方便、快捷地获取节点的状态信息,控制所述从节点直接从更新后的配置信息中获取所述主节点的状态信息,并返回给客户端,如此,无需通过主节点来得到对应的状态信息,有利于提高集群的负载能力。
步骤S106,当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,还根据所获取的状态信息生成对应所述从节点的新的配置信息。
在一实施方式中,当所述请求所对应的节点是从节点时,控制所述主节点直接执行所述请求。例如,接收到包含函数result=zk.set(‘/BIZ/CONFIG/feeds/name’,value='pingan')的请求时,控制所述主节点将从节点的数据更新为'pingan'。
当执行完所述请求后,利用所述主节点获取所述从节点的状态信息,并根据获取得到的状态信息生成对应所述从节点的新的配置信息。之后,可控制所述主节点将新的配置信息发送给各从节点,以使得各从节点与所述主节点保持相同的配置信息。由于从节点的状态信息(如从节点的数据)发生变化,对于其他客户端需要获取从节点的状态信息时,如发送请求到集群的从节点,为更方便、快捷地获取节点的状态信息,可控制所述从节点直接从更新后的配置信息中获取所述从节点的状态信息,并返回给客户端,如此,无需通过主节点来得到对应的状态信息,有利于提高集群的负载能力。
步骤S108,获取所述请求的请求结果,并对请求结果进行验证。
本实施方式中,可调用getData函数来获取所述请求的请求结果。
在一个实施例中,所述获取所述请求的请求结果,并对请求结果进行验证包括步骤(c1)-(c3):
(c1)调用getData函数获取所述请求所包括的节点标识所对应的数据;
(c2)将所获取的数据与预设的数据进行比较;
(c3)当所获取的数据与预设的数据一致,则确定请求结果正确,当所获取的数据与预设的数据不一致,则确定请求结果错误,并发出警示。
举例而言,假设客户端是调用函数result=zk.set(‘/BIZ/CONFIG/feeds/name’,value='pingan')发送所述请求的。即所述请求所包括的第一参数信息为/BIZ/CONFIG/feeds/name,第二参数信息为'pingan'。由于所述第一参数信息亦表示对应节点的节点标识,因此,可调用getData函数获取所述节点标识所对应的数据。如果所获取的数据是'pingan',即所获取的数据与所述请求所包括的第二参数信息'pingan'相同,那么可以确定所述请求的请求结果正确。当所获取到的数据不是'pingan'时,即所获取的数据与所述请求所包括的第二参数信息不相同时,表示所述请求结果错误,此时,可输出对应的警示信息。
综上所述,本发明实施例中所述的节点配置方法,通过接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点;当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;及当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。本发明节约了测试人员修改配置zookeeper节点的时间,方便进行自动化测试。
上述图1详细介绍了本发明的节点配置方法,下面结合图2和图3,对实现所述节点配置方法的软件装置的功能模块以及实现所述节点配置方法的硬件装置架构进行介绍。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
实施例二
参阅图2所示,是本发明实施例二提供的节点配置装置的结构图。
在一些实施例中,所述节点配置装置30运行于计算机装置中。所述节点配置装置30可以包括多个由程序代码段所组成的功能模块。所述节点配置装置30中的各个程序段的程序代码可以存储于计算机装置的存储器中,并由所述至少一个处理器所执行,以实现(详见图2描述)节点配置功能。
本实施例中,所述节点配置装置30根据其所执行的功能,可以被划分为多个功能模块。所述功能模块可以包括:接收模块301、执行模块302。本发明所称的模块是指一种能够被至少一个处理器所执行并且能够完成固定功能的一系列计算机程序段,其存储在存储器中。在本实施例中,关于各模块的功能将在后续的实施例中详述。
接收模块301接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种。
本实施例中,所述分布式系统可以为Zookeeper分布式系统。在一个实施例中,所述分布式系统可包括若干集群,每一集群可包括一个主节点及若干个从节点,所述从节点与所述主节点进行通信。其中,主节点可负责进行投票的发起和决议、更新系统的配置信息等,从节点可接收客户端发送的所述请求,但执行所述请求的权限仅由主节点决定。因此,当从节点接收到客户端发送的请求时,从节点可将所述请求转发给所述主节点,并由所述主节点来执行。
本实施例中,所述主节点及从节点均具有节点标识,如节点标识1、节点标识2、节点标识3等。对于Zookeeper分布式系统而言,其节点的节点标识可由其所在的路径进行识别,其从节点均位于主节点所在的路径上。
例如,主节点的路径可为“/BIZ/CONFIG”,第一从节点的路径可为“/BIZ/CONFIG/feeds”,第二从节点的路径可为“/BIZ/CONFIG/feeds/name”,其中第二从节点的路径位于所述第一从节点的路径内,第三从节点的路径可为“/BIZ/CONFIG/feed”,其与第二从节点并列地位于所述主节点的路径下。所述分布式系统中的每一节点可存储有对应的数据,在节点创建时即可进行设置,例如可通过create函数来对节点的数据进行设置。
在分布式系统中,为保证主节点与从节点之间的一致性,所述主节点与从节点会通过对应的配置信息来进行同步。例如当主节点或从节点中存在一节点的信息发生变化时,可通过更新配置信息来保持主节点与从节点之间的一致性。
本实施例中,所述预设的多种操作类型可包括,但不限于,增加节点、删除节点、更新节点所对应的数据等,其中,所述请求可调用函数create增加节点,调用函数delete删除节点,调用函数set更新节点。
本实施方式中,客户端可通过远程连接到Zookeeper服务器。可以理解地,Zookeeper服务器可具有主机地址、端口号等连接信息。进而,客户端通过远端连接于Zookeeper服务器时需要设置对应的连接信息。较佳地,客户端可通过Python中的第三方库KazooClient来连接Zookeeper服务器。例如,实例化对象zk=ZkClient(host,port,timeout),其中host表示主机地址,port表示端口号,timeout表示连接超时。
当客户端连接到Zookeeper服务器时,客户端可向Zookeeper服务器发送一种请求,该请求的类型为所述预设的多种操作类型中的一种。例如,客户端可通过函数result=zk.set(path,value='pingan')来发送请求,其中函数set中的参数path表示节点的路径,亦是节点的节点标识。
执行模块302根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点。
在一个实施例中,可于接收到客户端发送的所述请求时,执行模块302根据所述请求的操作类型的参数信息确定所述请求所对应的节点是主节点还是从节点。其中,所述请求的操作类型的参数信息包括节点标识。
在第一实施例中,所述根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点包括步骤(a1)-(a2):
(a1)遍历所述分布式系统所包含的节点,预先对所有的节点进行标记,每个节点对应一个标识,例如将节点标记为主节点或是从节点。
(a2)当接收到所述请求时,根据所述请求的操作类型的参数信息所包含的节点标识来确定所述请求所对应的节点是主节点还是从节点。
在第二实施例中,执行模块302可根据所述请求的操作类型的参数信息的格式来确定所述请求所对应的节点是主节点还是从节点。
具体地,所述根据所述请求的操作类型的参数信息的格式来确定所述请求所对应的节点是主节点还是从节点包括步骤(b1)-(b3):
(b1)根据所述请求的操作类型的参数信息所包括的预设字符(例如“/”)识别所述参数信息中所包含的字段数。
举例而言,主节点的路径为“/BIZ/CONFIG”,那么主节点对应的字段数为2。第一从节点的路径为“/BIZ/CONFIG/feeds”,则第一从节点对应的字段数为3。
(b2)当所述参数信息所包含的字段数为预设值(例如2)时,确定所述请求所对应的节点是主节点。
(b3)当所述参数信息所包含的字段数大于所述预设值(例如2)时,确定所述请求所对应的节点是从节点。
仍然以前述例子为例,当所述参数信息所包含的字段数为2时,执行模块302则可确定所述请求所对应的节点是主节点。当所述参数信息所包含的字段数大于2时,执行模块302则可确定所述请求所对应的节点是从节点。
当所述请求所对应的节点是主节点时,执行模块302控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息。
在一实施方式中,当客户端将所述请求发送到所述集群后,执行模块302可利用所述主节点接收所述请求或利用从节点接收所述请求。因此,当利用从节点接收到所述请求后,执行模块302可利用所述从节点将所述请求转发给所述主节点,以利用所述主节点来执行所述请求。
需要说明的是,执行模块302也可利用从节点执行更新节点状态信息的操作。因此,当所述请求对应的是读取节点的状态信息操作时,可利用所述从节点执行所述请求,即利用所述从节点读取节点的状态信息,将所读取的状态信息返回给客户端。
在一实施方式中,当所述请求所对应的节点是主节点时,执行模块302可利用所述主节点直接执行所述请求。例如,接收到函数包含result=zk.set(‘/BIZ/CONFIG’,value='pingan')的请求时,控制所述主节点直接将其数据更新为'pingan'。
当执行完所述请求后,执行模块302利用所述主节点生成对应的新的配置信息,如将主节点的数据更新为最新的,以得到新的配置信息。之后,控制所述主节点将对应所述从节点的新的配置信息发送给各从节点,以使得各从节点与所述主节点保持相同的配置信息。由于主节点的状态信息(如主节点的数据)发生变化,对于其他客户端需要获取主节点的状态信息时,如发送请求到集群的从节点,为更方便、快捷地获取节点的状态信息,执行模块302可控制所述从节点直接从更新后的配置信息中获取所述主节点的状态信息,并返回给客户端,如此,无需通过主节点来得到对应的状态信息,有利于提高集群的负载能力。
当所述请求所对应的节点是从节点时,执行模块302控制所述主节点执行所述请求,并获取所述从节点的状态信息,还根据所获取的状态信息生成对应所述从节点的新的配置信息。
在一实施方式中,当所述请求所对应的节点是从节点时,执行模块302控制所述主节点直接执行所述请求。例如,接收到包含函数result=zk.set(‘/BIZ/CONFIG/feeds/name’,value='pingan')的请求时,执行模块302控制所述主节点将从节点的数据更新为'pingan'。
当执行完所述请求后,执行模块302利用所述主节点获取所述从节点的状态信息,并根据获取得到的状态信息生成对应所述从节点的新的配置信息。之后,执行模块302可控制所述主节点将新的配置信息发送给各从节点,以使得各从节点与所述主节点保持相同的配置信息。由于从节点的状态信息(如从节点的数据)发生变化,对于其他客户端需要获取从节点的状态信息时,如发送请求到集群的从节点,为更方便、快捷地获取节点的状态信息,执行模块302可控制所述从节点直接从更新后的配置信息中获取所述从节点的状态信息,并返回给客户端,如此,无需通过主节点来得到对应的状态信息,有利于提高集群的负载能力。
执行模块302获取所述请求的请求结果,并对请求结果进行验证。
本实施方式中,执行模块302可调用getData函数来获取所述请求的请求结果。
在一个实施例中,所述获取所述请求的请求结果,并对请求结果进行验证包括步骤(c1)-(c3):
(c1)调用getData函数获取所述请求所包括的节点标识所对应的数据;
(c2)将所获取的数据与预设的数据进行比较;
(c3)当所获取的数据与预设的数据一致,则确定请求结果正确,当所获取的数据与预设的数据不一致,则确定请求结果错误,并发出警示。
举例而言,假设客户端是调用函数result=zk.set(‘/BIZ/CONFIG/feeds/name’,value='pingan')发送所述请求的。即所述请求所包括的第一参数信息为/BIZ/CONFIG/feeds/name,第二参数信息为'pingan'。由于所述第一参数信息亦表示对应节点的节点标识,因此,可调用getData函数获取所述节点标识所对应的数据。如果所获取的数据是'pingan',即所获取的数据与所述请求所包括的第二参数信息'pingan'相同,那么可以确定所述请求的请求结果正确。当所获取到的数据不是'pingan'时,即所获取的数据与所述请求所包括的第二参数信息不相同时,表示所述请求结果错误,此时,可输出对应的警示信息。
综上所述,本发明实施例中所述的节点配置方法,通过接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点;当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;及当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。本发明节约了测试人员修改配置zookeeper节点的时间,方便进行自动化测试。
实施例三
参阅图3所示,为本发明实施例三提供的计算机装置的结构示意图。在本发明较佳实施例中,所述计算机装置3包括存储器31、至少一个处理器32、至少一条通信总线33。本领域技术人员应该了解,图3示出的计算机装置的结构并不构成本发明实施例的限定,既可以是总线型结构,也可以是星形结构,所述计算机装置3还可以包括比图示更多或更少的其他硬件或者软件,或者不同的部件布置。
在一些实施例中,所述计算机装置3包括一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的终端,其硬件包括但不限于微处理器、专用集成电路、可编程门阵列、数字处理器及嵌入式设备等。
需要说明的是,所述计算机装置3仅为举例,其他现有的或今后可能出现的电子产品如可适应于本发明,也应包含在本发明的保护范围以内,并以引用方式包含于此。
在一些实施例中,所述存储器31用于存储程序代码和各种数据,例如安装在所述计算机装置3中的节点配置装置30,并在计算机装置3的运行过程中实现高速、自动地完成程序或数据的存取。所述存储器31包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子擦除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他存储介质。
在一些实施例中,所述至少一个处理器32可以由集成电路组成,例如可以由单个封装的集成电路所组成,也可以是由多个相同功能或不同功能封装的集成电路所组成,包括一个或者多个中央处理器(Central Processing unit,CPU)、微处理器、数字处理芯片、图形处理器及各种控制芯片的组合等。所述至少一个处理器32是所述计算机装置3的控制核心(Control Unit),利用各种接口和线路连接整个计算机装置3的各个部件,通过运行或执行存储在所述存储器31内的程序或者模块,以及调用存储在所述存储器31内的数据,以执行计算机装置3的各种功能和处理数据,例如执行节点配置的功能。
在一些实施例中,所述至少一条通信总线33被设置为实现所述存储器31以及所述至少一个处理器32等之间的连接通信。
尽管未示出,所述计算机装置3还可以包括给各个部件供电的电源(比如电池),优选的,电源可以通过电源管理装置与所述至少一个处理器32逻辑相连,从而通过电源管理装置实现管理充电、放电、以及功耗管理等功能。电源还可以包括一个或一个以上的直流或交流电源、再充电装置、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。所述计算机装置3还可以包括多种传感器、蓝牙模块、Wi-Fi模块等,在此不再赘述。
应该了解,所述实施例仅为说明之用,在专利申请范围上并不受此结构的限制。
上述以软件功能模块的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是服务器、个人电脑等)或处理器(processor)执行本发明各个实施例所述方法的部分。
在进一步的实施例中,结合图2,所述至少一个处理器32可执行所述计算机装置3的操作装置以及安装的各类应用程序(如所述的节点配置装置30)、程序代码等,例如,上述的各个模块。
所述存储器31中存储有程序代码,且所述至少一个处理器32可调用所述存储器31中存储的程序代码以执行相关的功能。例如,图2中所述的各个模块是存储在所述存储器31中的程序代码,并由所述至少一个处理器32所执行,从而实现所述各个模块的功能以达到节点配置的目的。
在本发明的一个实施例中,所述存储器31存储一个或多个指令即至少一个指令,所述至少一个指令被所述至少一个处理器32所执行以实现节点配置的目的。
具体地,所述至少一个处理器32对上述至少一个指令的具体实现方法可参考图1对应实施例中相关步骤的描述,在此不赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
最后应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (10)
1.一种节点配置方法,其特征在于,所述方法包括:
接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;
根据所述请求的操作类型的参数信息确定所述请求所对应的节点是主节点还是从节点,所述参数信息包括节点标识和预设字符;
当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;控制所述主节点将对应所述主节点的新的配置信息发送给所述从节点,以使得所述从节点与所述主节点保持相同的配置信息,所述主节点与所述从节点属于同一集群;当利用所述从节点从客户端接收到获取所述主节点的状态信息的请求时,控制所述从节点直接从对应所述主节点的新的配置信息中获取所述主节点的状态信息,并控制所述从节点将所述主节点的状态信息直接发送给所述客户端;及
当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。
2.如权利要求1所述的节点配置方法,其特征在于,所述方法还包括步骤:
获取所述请求的请求结果,并对请求结果进行验证。
3.如权利要求2所述的节点配置方法,其特征在于,所述获取所述请求的请求结果,并对请求结果进行验证包括:
调用getData函数获取所述请求所包括的节点标识所对应的数据;
将所获取的数据与预设的数据进行比较;
当所获取的数据与预设的数据一致,则确定请求结果正确,当所获取的数据与预设的数据不一致,则确定请求结果错误,并发出警示。
4.如权利要求1所述的节点配置方法,其特征在于,所述预设的多种操作类型包括增加节点、删除节点、更新节点所对应的数据,其中,所述请求调用函数create增加节点,调用函数delete删除节点,调用函数set更新节点。
5.如权利要求1所述的节点配置方法,其特征在于,所述根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点包括:
遍历所述分布式系统所包含的节点,预先对所有的节点进行标记,每个节点对应一个标识;及
当接收到所述请求时,根据所述请求的操作类型的参数信息所包含的节点标识确定所述请求所对应的节点是主节点还是从节点。
6.如权利要求1所述的节点配置方法,其特征在于,所述根据所述请求的操作类型确定所述请求所对应的节点是主节点还是从节点包括:
根据所述请求的操作类型的参数信息所包括的预设字符识别所述参数信息中所包含的字段数;
当所述参数信息所包含的字段数为预设值时,确定所述请求所对应的节点是主节点;及
当所述参数信息所包含的字段数大于所述预设值时,确定所述请求所对应的节点是从节点。
7.如权利要求1所述的节点配置方法,其特征在于,当根据所获取的状态信息生成对应所述从节点的新的配置信息后,所述方法还包括:
控制所述主节点将对应所述从节点的新的配置信息发送给各从节点。
8.一种计算机装置,其特征在于,所述计算机装置包括存储器和处理器,所述存储器用于存储至少一个指令,所述处理器用于执行所述至少一个指令时实现如权利要求1至7中任意一项所述节点配置方法。
9.一种计算机可读存储介质,其上存储有至少一个指令,其特征在于,所述至少一个指令被处理器执行时实现如权利要求1至7中任意一项所述节点配置方法。
10.一种节点配置装置,其特征在于,所述装置包括:
接收模块,用于接收用于更新分布式系统中主节点及一个或多个从节点的配置信息的请求,其中,所述请求的操作类型为预设的多种操作类型中的一种;
执行模块,用于根据所述请求的操作类型的参数信息确定所述请求所对应的节点是主节点还是从节点,所述参数信息包括节点标识和预设字符;
所述执行模块,还用于当所述请求所对应的节点是主节点时,控制所述主节点执行所述请求,并生成对应所述主节点的新的配置信息;控制所述主节点将对应所述主节点的新的配置信息发送给所述从节点,以使得所述从节点与所述主节点保持相同的配置信息,所述主节点与所述从节点属于同一集群;当利用所述从节点从客户端接收到获取所述主节点的状态信息的请求时,控制所述从节点直接从对应所述主节点的新的配置信息中获取所述主节点的状态信息,并控制所述从节点将所述主节点的状态信息直接发送给所述客户端;及
所述执行模块,还用于当所述请求所对应的节点是从节点时,控制所述主节点执行所述请求,并获取所述从节点的状态信息,以及根据所获取的状态信息生成对应所述从节点的新的配置信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190300.3A CN110113181B (zh) | 2019-03-13 | 2019-03-13 | 节点配置方法、装置、计算机装置、及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910190300.3A CN110113181B (zh) | 2019-03-13 | 2019-03-13 | 节点配置方法、装置、计算机装置、及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110113181A CN110113181A (zh) | 2019-08-09 |
CN110113181B true CN110113181B (zh) | 2023-08-22 |
Family
ID=67484334
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910190300.3A Active CN110113181B (zh) | 2019-03-13 | 2019-03-13 | 节点配置方法、装置、计算机装置、及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110113181B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114095354A (zh) * | 2020-08-07 | 2022-02-25 | 艾锐势企业有限责任公司 | 电子设备、用于电子设备的方法、计算机可读介质以及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897279A (zh) * | 2015-12-17 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 用于分布式文件处理的方法和设备 |
CN108156236A (zh) * | 2017-12-22 | 2018-06-12 | 平安养老保险股份有限公司 | 业务请求处理方法、装置、计算机设备和存储介质 |
CN108322533A (zh) * | 2018-01-31 | 2018-07-24 | 广州鼎甲计算机科技有限公司 | 基于操作日志的分布式集群节点间配置同步方法 |
CN108829787A (zh) * | 2018-05-31 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种元数据分布式系统 |
-
2019
- 2019-03-13 CN CN201910190300.3A patent/CN110113181B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106897279A (zh) * | 2015-12-17 | 2017-06-27 | 阿里巴巴集团控股有限公司 | 用于分布式文件处理的方法和设备 |
CN108156236A (zh) * | 2017-12-22 | 2018-06-12 | 平安养老保险股份有限公司 | 业务请求处理方法、装置、计算机设备和存储介质 |
CN108322533A (zh) * | 2018-01-31 | 2018-07-24 | 广州鼎甲计算机科技有限公司 | 基于操作日志的分布式集群节点间配置同步方法 |
CN108829787A (zh) * | 2018-05-31 | 2018-11-16 | 郑州云海信息技术有限公司 | 一种元数据分布式系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110113181A (zh) | 2019-08-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108370341B (zh) | 资源配置方法、虚拟网络功能管理器和网元管理系统 | |
CN112486629B (zh) | 微服务状态检测方法、装置、电子设备和存储介质 | |
US10715628B2 (en) | Attribute operating method and device | |
CN110113181B (zh) | 节点配置方法、装置、计算机装置、及可读存储介质 | |
CN108664343A (zh) | 一种微服务的有状态调用方法及装置 | |
CN113360386A (zh) | 交换芯片驱动测试方法、装置、电子设备和存储介质 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
GB2583903A (en) | Testing virtualised network functions | |
CN115933591A (zh) | 一种控制器诊断方法、装置、设备和存储介质 | |
CN112650815B (zh) | 环境数据的同步方法及装置、存储介质及电子装置 | |
CN114493185A (zh) | 审批处理方法、装置、系统、电子设备、存储介质及产品 | |
CN114297109A (zh) | 一种基于订阅发布模式的数据处理方法、装置、电子设备及存储介质 | |
CN114356400A (zh) | 云组态应用开发方法、装置及电子设备 | |
CN112055058A (zh) | 数据的存储方法、装置及计算机可读存储介质 | |
CN114785847B (zh) | 网络控制软件开发配置方法、终端及存储介质 | |
CN111444008B (zh) | 集群间服务迁移方法及装置 | |
CN112035174B (zh) | 运行web服务的方法、装置及计算机存储介质 | |
CN110059125B (zh) | 一种代理合约调用的方法及相关设备 | |
CN115495529A (zh) | 一种dts数据链路运维方法、装置、设备及介质 | |
CN116521361A (zh) | 一种模拟配单方法、装置及设备 | |
CN116962185A (zh) | 网关管控方法、装置、电子设备和计算机程序产品 | |
CN115640206A (zh) | 一种测试计划建立方法、装置和设备 | |
CN117560403A (zh) | 试验箱控制方法、计算机装置及存储介质 | |
CN117909345A (zh) | 缓存数据的稽核方法、装置、设备及存储介质 | |
CN114386838A (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 |