CN113660339B - 用于去中心化集群的方法和装置 - Google Patents
用于去中心化集群的方法和装置 Download PDFInfo
- Publication number
- CN113660339B CN113660339B CN202110949191.6A CN202110949191A CN113660339B CN 113660339 B CN113660339 B CN 113660339B CN 202110949191 A CN202110949191 A CN 202110949191A CN 113660339 B CN113660339 B CN 113660339B
- Authority
- CN
- China
- Prior art keywords
- node
- cluster
- service
- response
- access
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Hardware Redundancy (AREA)
Abstract
提供了一种用于去中心化集群的方法和装置,涉及计算机技术领域,尤其涉及集群部署技术领域。实现方案为:通过集群服务的端口接收至少一个节点的访问,至少一个节点中的每一个节点被配置成基于访问执行加入集群的操作;以及响应于确定至少一个节点中的第一节点的操作成功,将第一节点的接入接口挂载到集群服务的后端,以使集群服务的端口映射为第一节点的接入接口的端口,其中,接入接口被配置用于基于至少一个节点中的区别于述第一节点的第二节点的操作,使第二节点加入包含第一节点的第一集群。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及集群部署技术领域,具体涉及一种用于去中心化集群的方法和装置、电子设备、计算机可读存储介质和计算机程序产品。
背景技术
去中心化的集群,在集群最初的启动过程中,往往需要通过种子节点启动,基于种子节点的启动,后续的加入的节点通过已启动的种子节点来加入集群。
在此部分中描述的方法不一定是之前已经设想到或采用的方法。除非另有指明,否则不应假定此部分中描述的任何方法仅因其包括在此部分中就被认为是现有技术。类似地,除非另有指明,否则此部分中提及的问题不应认为在任何现有技术中已被公认。
发明内容
本公开提供了一种用于去中心化集群的方法、装置、电子设备、计算机可读存储介质和计算机程序产品。
根据本公开的一方面,提供了一种用于去中心化集群的方法,包括:通过集群服务的端口接收至少一个节点的访问,所述至少一个节点中的每一个节点被配置成基于所述访问执行加入集群的操作;以及响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端,以使所述集群服务的端口映射为所述第一节点的接入接口的端口,其中,所述接入接口被配置用于基于所述至少一个节点中的区别于所述第一节点的第二节点的所述操作,使所述第二节点加入包含所述第一节点的第一集群。
根据本公开的另一方面,提供了一种用于去中心化集群的装置,包括:接收单元,被配置用于通过集群服务的端口接收至少一个节点的访问,所述至少一个节点中的每一个节点被配置成基于所述访问执行加入集群的操作;以及挂载单元,被配置用于响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端,以使所述集群服务的端口映射为所述第一节点的接入接口的端口,其中,所述接入接口被配置用于基于所述至少一个节点中的区别于所述第一节点的第二节点的所述操作,使所述第二节点加入包含所述第一节点的第一集群。
根据本公开的另一方面,提供了一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器实现根据上述的方法。
根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机实现根据上述的方法。
根据本公开的另一方面,提供了一种电子设备,计算机程序产品,包括计算机程序,其中,所述计算机程序在被处理器执行时实现根据上述的方法。
根据本公开的一个或多个实施例,通过集群服务的端口接收节点的访问,并且使集群服务的端口映射为通过访问该集群服务而成功加入集群的第一节点的接入接口的端口,使通过后续通过访问该集群服务而执行加入集群的操作的其他节点在访问该集群服务时,可以访问到该集群服务的端口映射的第一节点的接入接口的端口。由于该第一节点的接入接口配置为基于其他节点访问集群服务而执行的加入集群的操作,使其他节点加入该第一节点已加入的第一集群;因此,后续通过访问该集群服务而访问到该第一节点的接入接口的端口的其他节点,能够加入第一集群。
该第一节点不限制为种子节点还是区别于种子节点的服务节点,因此,其该第一集群使去中心化的集群,且在该去中心化的集群的启动过程中,新加入的节点不需要通过种子节点的接入接口而加入该集群。在包括多个节点的集群中,在种子节点失效的情况下,仍然能够通过集群中的其他已启动的任一节点加入该集群,有效避免了因为种子节点重启而可能造成的脑裂问题。
应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图示例性地示出了实施例并且构成说明书的一部分,与说明书的文字描述一起用于讲解实施例的示例性实施方式。所示出的实施例仅出于例示的目的,并不限制权利要求的范围。在所有附图中,相同的附图标记指代类似但不一定相同的要素。
图1示出了根据本公开的一些实施例的用于去中心化集群的方法的流程图;
图2示出了根据图1的用于去中心化集群的方法中,通过集群服务的端口接收至少一个节点的访问的过程的流程图;
图3示出了根据本公开的一些实施例的用于去中心化集群的方法中,响应于确定与第一次访问对应的所述操作失败,使业务节点与集群服务进行第二连接的过程的流程图;
图4示出了根据本公开的一些实施例的用于去中心化集群的方法中通过种子节点建立第一集群的过程的流程图;
图5示出了根据本公开的一些实施例的用于去中心化集群的方法中通过种子节点的接入接口接收第一节点加入第一集群的过程的流程图;
图6示出了根据本公开的一些实施例的用于去中心化集群的方法中通过第一集群中的多个节点中的各个节点的接入接口接收第二节点加入第一集群的过程的流程图;
图7示出了根据本公开的一些实施例的用于去中心化集群的方法中,响应于确定第一节点成功加入集群,将第一节点的接入接口挂载到集群服务的后端的过程的流程图;
图8示出了根据本公开的一些实施例的用于去中心化集群的方法中,顺序启动种子节点和至少一个副本中的每一个副本的过程的流程图;
图9示出根据本公开的用于去中心化集群的装置的结构框图;以及
图10示出了能够用于实现本公开的实施例的示例性电子设备的结构框图。
具体实施方式
以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
在本公开中,除非另有说明,否则使用术语“第一”、“第二”等来描述各种要素不意图限定这些要素的位置关系、时序关系或重要性关系,这种术语只是用于将一个元件与另一元件区分开。在一些示例中,第一要素和第二要素可以指向该要素的同一实例,而在某些情况下,基于上下文的描述,它们也可以指代不同实例。
在本公开中对各种所述示例的描述中所使用的术语只是为了描述特定示例的目的,而并非旨在进行限制。除非上下文另外明确地表明,如果不特意限定要素的数量,则该要素可以是一个也可以是多个。此外,本公开中所使用的术语“和/或”涵盖所列出的项目中的任何一个以及全部可能的组合方式。
下面将结合附图详细描述本公开的实施例。
在相关技术中,在去中心化的集群启动之后,通过手动修改配置,使得后续加入的节点通过访问集群中的其他正常加点来加入集群。然而,在基于K8s(全称Kubernetes)部署的集群中,通过容器编排***对容器化应用进行自动化部署、扩缩和管理,通过手动修改配置实现节点加入集群,使得节点的加入过程繁琐。
本公开的一方面提供了一种用于去中心化集群的方法。
参看图1,根据本公开的一些实施例的一种用于去中心化集群的方法100包括:
步骤S110:通过集群服务的端口接收至少一个节点的访问,所述至少一个节点中的每一个节点被配置成基于所述访问执行加入集群的操作;以及
步骤S120:响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端,以使所述集群服务的端口映射为所述第一节点的接入接口的端口。
其中,所述接入接口被配置用于基于所述至少一个节点中的区别于所述第一节点的第二节点的所述操作,使所述第二节点加入包含所述第一节点的第一集群。
根据本公开的一个或多个实施例,通过集群服务的端口接收节点的访问,并且使集群服务的端口映射为通过访问该集群服务而成功加入集群的第一节点的接入接口的端口,使通过后续通过访问该集群服务而执行加入集群的操作的其他节点在访问该集群服务时,可以访问到该集群服务的端口映射的第一节点的接入接口的端口。由于该第一节点的接入接口配置为基于其他节点访问集群服务而执行的加入集群的操作,使其他节点加入该第一节点已加入的第一集群;因此,后续通过访问该集群服务而访问到该第一节点的接入接口的端口的其他节点,能够加入第一集群。
该第一节点不限制为种子节点还是区别于种子节点的服务节点,因此,其该第一集群使去中心化的集群,且在该去中心化的集群的启动过程中,新加入的节点不需要通过种子节点的接入接口而加入该集群。在包括多个节点的集群中,在种子节点失效的情况下,仍然能够通过集群中的其他已启动的任一节点加入该集群,有效避免了因为种子节点重启而可能造成的脑裂问题。
需要说明的是,本公开中的术语“种子节点”是指集群建立时作为第一个节点的节点,“业务节点”包括数据节点、客户端节点以及机器学习节点等用以实现服务发现功能的任意节点等;同时,“种子节点”和“业务节点”
根据本公开的方法,其能够用于基于K8s的集群中,并且配合容器编排***对容器化应用的自动化部署、扩缩和管理,不需要手动控制集群中的节点的启动顺序,实现节点加入集群。
根据一些实施例,在步骤S110中,通过在K8s中创建集群服务(cluster service),该集群服务的集群IP(Cluster IP)作为至少一个节点中各个节点加入集群的入口。根据一些实施例,该集群IP(Cluster IP)为虚拟IP。根据一些实施例,至少一个节点中各个节点通过访问该集群IP(Cluster IP),以加入集群。
根据一些实施例,在步骤S120中,当至少一个节点中的第一节点的加入节点的操作成功之后,将第一节点的计入接口挂载到集群服务的后端,以使所述集群服务的集群IP(Cluster IP)映射为所述第一节点的接入接口的端口。根据一些实施例,至少一个节点中的每一个节点的接入接口被配置成远程过程调用(RPC)接口,可以接收请求加入集群的节点的加入请求,并接收该请求加入集群的节点以加入集群。
在一些实施例中,通过统一设计的开发工具包(SDK),实现上述至少一个节点中各个节点通过访问该集群IP(Cluster IP),以加入集群;以及实现上述至少一个节点中的每一个节点的接入接口被配置成远程过程调用(RPC)接口,以接收请求加入集群的节点的加入请求并使其加入集群。
在一些实施例中,还通过统一设计的开发工具包实现至少一个节点在加入集群后通过心跳和广播,实现相关协议,完成集群内结点信息同步和服务发现功能。
在根据本公开的方法中,通过统一设计的开发工具包(SDK)实现集群的部署过程,使得集群的部署中,一旦作为集群启动的初始(第一个)起点的种子节点首先被启动,就失去了其特殊性。而不需要该种子节点始终承担作为节点加入进群的入口的特殊功能,也无需具有额外的功能。即该种子节点只需要集成开发工具包(SDK),提供具有上述被配置成远程过程调用(RPC)接口的接入接口即可。在集群启动之后,即使种子节点失效的情况下,对于集群内的其他已启动的节点,由于具有上述被配置成远程过程调用(RPC)接口的接入接口,均能接受请求加入集群的节点的加入请求,而接收节点以加入集群。该方法进一步优化基于K8s的集群的部署、管理和维护过程的自动化属性,提升集群部署和管理的效率。
在一些实施例中,所述至少一个节点包括业务节点,如图2所示,步骤S110、通过集群服务的端口接收至少一个节点的访问包括:
步骤S210:响应于接收到所述业务节点的启动服务的请求,使所述业务节点与所述集群服务进行第一连接,以对所述集群服务的端口进行第一次访问;以及
步骤S220:响应于确定与所述第一次访问对应的所述操作失败,使所述业务节点与所述集群服务进行第二连接,以对所述集群服务的端口进行第二次访问。
由于集群在部署的过程中,需要由种子节点作为初始(第一个)节点以建立集群。当集群没有建立时,当业务节点通过访问集群服务的端口以加入集群的操作失败,使业务节点重复访问集群服务的端口。在这一过程中,业务节点通过不断重复访问就能的端口,不断执行加入集群的操作,一旦集群建立,则业务节点可以通过访问集群服务的端口,以加入集群,实现业务节点通过集群服务的自动加入。通过不断访问集群服务的端口,业务节点处于等待种子节点建立集群。该过程不需要设置集群中的节点的启动顺序,其基于节点本身的属性,通过自动的等待和加入过程,就能实现集群的部署和服务发现,进一步使基于K8s的集群的部署、管理和维护过程的自动化属性提升。
在一些实施例中,客户端通过负载均衡器提出服务请求,负载均衡器通过将请求转发到业务节点,业务节点基于接收到的客户端的服务请求而发送启动服务的请求,以与集群服务进行第一连接。
在一些实施例中,如图3所示,步骤S220、响应于确定与所述第一次访问对应的所述操作失败,使所述业务节点与所述集群服务进行第二连接包括:
步骤S310:响应于确定与所述第一次访问对应的所述操作失败,获取第一时间点;以及
步骤S320:响应于当前时间点距离所述第一时间点的时间间隔小于预设值,使所述业务节点进行所述第二连接。
当集群没有建立时,当业务节点通过访问集群服务的端口以加入集群的操作失败,使业务节点在预设时间段内重复连接集群服务,以重复访问集群服务的端口,避免持续重新连接,占用资源。
在一些实施例中,步骤S220、响应于确定与所述第一次访问对应的所述操作失败,使所述业务节点与所述集群服务进行第二连接还包括:
响应于当前时间点距离所述第一时间点的时间间隔大于或者等于预设值,使所述业务节点重新发送所述启动服务的请求。
当集群没有建立时,当业务节点通过访问集群服务的端口以加入集群的操作失败,并且业务节点重复连接集群服务的时间段超过预设值,仍然没有加入集群,则业务节点的服务启动失败。在集群启动后,通过使业务节点重新发送启动服务的请求,使业务节点重新访问集群服务的端口以加入集群,最终实现业务节点的服务启动。
在一些实施例中,通过容器探针检测业务节点的服务状态,当检测到业务节点的服务状态异常时,使业务节点重新发送启动服务的请求。
在一些实施例中,通过不断重复步骤S310、步骤S320以及上述使业务节点重新发送启动服务的请求的过程,直至最终实现业务节点的服务启动。
下面对根据本公开的方法中基于种子节点作为初始(第一个)节点建立集群的过程进行示例性说明。
在一些实施例中,所述至少一个节点包括种子节点,如图4所示、所述方法100还包括:
步骤S410:响应于确定所述种子节的所述操作失败,建立所述第一集群,所述第一集群包括所述种子节点;以及
步骤S420:响应于所述第一集群的建立,确定所述种子节点的所述操作成功。
当集群没有建立时,通过种子节点作为集群启动的初始(第一个)节点,以建立集群。通过种子节点访问该集群服务后,当种子节点加入集群的操作失败,说明当前没有启动的集群,则将该种子节点作为第一个节点建立包含该种子节点的第一集群。基于该第一集群的建立,确定种子节点加入了该第一集群,即种子节点的加入集群的操作成功,使集群服务的端口映射为该种子节点的接入接口,从而后续通过访问该集群服务的端口以执行加入集群的操作的节点可以访问到该种子节点的接入接口的端口,以加入集群。当该种子节点的接入接口接收到通过访问该集群服务的端口以执行加入集群的操作的节点的加入请求时,接收该节点以加入集群。
在上述过程中,实现集群的初始建立,不需要手动设置节点的启动顺序,通过种子节点的自动访问,就可以实现集群的初始建立,实现集群的自动启动。
下面对根据本公开的方法中基于种子节点作为初始(第一个)节点建立集群后,其他节点(包括业务节点和种子节点)加入集群的过程进行示例性说明。
在一些实施例中,如图5所示、所述方法100还包括:
步骤S510:基于所述种子节点的接入接口接收到所述第一节点对应于所述操作的加入请求,使所述第一集群包括所述第一节点;以及
步骤S520:响应于所述第一集群包括所述第一节点,确定所述第一节点的所述操作成功。
在种子节点建立第一集群之后,通过种子节点的接口接收到至少一个节点中的第一节点的加入请求,接纳第一节点加入第一集群。由于第一集群中包括第一节点,确定该第一节点的加入集群的操作成功,从而可以将该第一节点的接入接口挂载到集群服务的后端,使集群服务的端口映射为第一节点的接入接口的端口。从而,后续访问集群服务的端口的节点,可以通过访问集群服务的端口而访问到该第一节点的接入接口的端口,从而可以通过向该第一节点的接入接口发送加入请求,而加入第一集群。
需要说明的是,上述过程中,第一节点是在基于种子节点作为初始(第一个)节点建立第一集群后的加入该第一集群的第二个节点(紧随种子节点之后的节点),其通过作为初始(第一个)节点的种子节点的接入接口加入第一集群。在根据本公开的其他实施例中,第一节点可以是加入该第一集群的第三个节点(紧随第二节点之后的节点)、第四个节点(紧随第三节点之后的节点)等,在此并不限定。
在一些实施例中,如图6所示、所述方法100还包括:
步骤S610:基于所述第一集群中的一个或多个节点中的任意一个的接入接口接收到所述第二节点对应于所述操作的加入请求,使所述第一集群包括所述第二节点;以及
步骤S610:响应于所述第一集群包括所述第二节点,确定所述第二节点的所述操作成功。
在种子节点建立第一集群之后,并通过种子节点的接入接口接收节点之后,第一集群中包括多个节点,并且该多个节点中的每一个节点的接入接口都可以被配置成接收节点的加入请求,以使节点加入第一集群。基于多个节点中任意一个节点的接入接口接收到第二节点的加入请求,以使所第一集群包括第二节点,实现第二节点加入第一集群。
在一些实施例中,当第二节点通过访问集群服务的端口以执行加入集群的操作时,通过负载均衡器调配,使第一集群中的多个节点中的一个节点的接入接口接收该第二节点的加入请求。
在一些实施例中,如图7所示,步骤S120、响应于确定所述第一节点成功加入集群,将所述第一节点的接入接口挂载到所述集群服务的后端包括:
步骤S710:响应于确定所述第一节点的所述操作成功,获取所述第一节点的服务状态;以及
步骤S720:响应于确定所述第一节点的所述服务状态为服务正常,将所述第一节点的接入接口挂载到所述集群服务的后端。
由于节点的具体业务功能的拉起应在节点成功接入集群之后进行,为此,当节点通过集群服务加入集群后,节点的服务启动,通过获取节点的服务状态为服务正常,以确保节点成功加入集群,同时接入接口的功能已准备就绪,此时可以将节点的接入接口挂载到集群服务的后端,从而使后续通过访问集群服务以加入及集群的节点可以访问到该已经成功加入集群的节点的接入接口,从而加入集群。
在一些实施例中,通过容器内的探针探测节点的服务状态。在一些实施例中,容器的探针包括对应于种子节点的readinessProbe,以及对应于业务节点的readinessProbe和livenessProbe等,在此并不限定。
在相关技术中,在集群部署时,声明种子节点有多个副本。在集群启动时,这些副本可能因同时启动而各自形成集群,从而造成脑裂。为了解决上述问题,根据本公开的一些实施例,所述至少一个节点包括种子节点和与所述种子节点对应的至少一个副本;以及其中,步骤S210、响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端还包括:
响应于所述种子节点和与所述至少一个副本中的每一个副本的所述操作成功,顺序启动所述种子节点和所述至少一个副本中的每一个副本,以使同一时刻有且仅有所述种子节点或者所述至少一个部分中的一个副本的服务状态正常。
通过顺序启动种子节点以及种子节点的至少一个副本,使得在同一时刻只有一个种子节点(或者副本)在运行,避免多个副本同时启动而各自形成初始集群而造成脑裂。
在一些实施例中,通过statefulset等组件来控制节点的服务的启动顺序。
在一些实施例中,如图8所示、顺序启动所述种子节点和所述至少一个副本中的每一个副本包括:
步骤S810:响应于确定所述种子节点的所述服务状态为服务正常,使所述至少一个副本中的每一个副本的所述服务状态为服务失效;以及
步骤S820:响应于确定所述种子节点的服务状态为服务失效,启动所述至少一个副本中的第一副本,使所述第一副本的所述服务状态为服务正常。
通过在种子节点的服务启动时,使种子节点的其他副本均服务失效,实现在同一时刻只有一个种子节点(或者副本)在运行,同时当种子节点失效时,启动其他副本中的一个副本,避免多个副本同时启动而各自形成初始集群而造成脑裂。
需要理解的是,本公开的种子节点和种子节点对应的至少一个副本中的每一个副本均是指具有作为集群建立的初始(第一个)节点的功能的节点,相互之间作为备份、防灾。
根据本公开的另一方面,如图9所示,还提供一种用于去中心化集群的装置900,包括:接收单元910,被配置用于通过集群服务的端口接收至少一个节点的访问,所述至少一个节点中的每一个节点被配置成基于所述访问执行加入集群的操作;以及挂载单元920,被配置用于响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端,以使所述集群服务的端口映射为所述第一节点的接入接口的端口,其中,所述接入接口被配置用于基于所述至少一个节点中的区别于所述第一节点的第二节点的所述操作,使所述第二节点加入包含所述第一节点的第一集群。
在一些实施例中,所述至少一个节点包括业务节点,所述接收单元910包括:第一连接单元,响应于接收到所述业务节点的启动服务的请求,使所述业务节点与所述集群服务进行第一连接,以对所述集群服务的端口进行第一次访问;以及第二连接单元,被配置用于响应于确定与所述第一次访问对应的所述操作失败,使所述业务节点与所述集群服务进行第二连接,以对所述集群服务的端口进行第二次访问。
在一些实施例中,所述第二连接单元包括:获取单元,被配置用于响应于确定与所述第一次访问对应的所述操作失败,获取第一时间点;以及第二连接子单元,被配置用于响应于当前时间点距离所述第一时间点的时间间隔小于预设值,使所述业务节点进行所述第二连接。
在一些实施例中,所述接收单元包括:控制单元,响应于当前时间点距离所述第一时间点的时间间隔大于预设值,使所述业务节点重新发送所述对应的服务启动请求。
在一些实施例中,所述至少一个节点包括种子节点,所述装置还包括:构建单元,响应于确定所述种子节的所述操作失败,建立所述第一集群,所述第一集群包括所述种子节点;以及第一确定单元,被配置用于响应于所述第一集群的建立,确定所述种子节点的所述操作成功。
在一些实施例中,所述装置900还包括:接收子单元,被配置用于基于所述种子节点的接入接口的接收到所述第一节点对应于所述操作的加入请求,使所述第一集群包括所述第一节点;以及第二确定单元,被配置用于响应于所述第一集群包括所述第一节点,确定所述第一节点的所述操作成功。
在一些实施例中,所述接收子单元还被配置用于基于所述第一集群中的多个节点中的任意一个的接入接口接收到所述第二节点对应于所述操作的加入请求,使所述第一集群包括所述第二节点;以及其中,所述第二确定单元还被配置用于响应于所述第一集群包括所述第二节点,确定所述第二节点的所述操作成功。
根据本公开的另一方面,还提供一种电子设备,包括:至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中所述存储器存储有计算机程序,所述计算机程序在被所述至少一个处理器执行时实现根据上述的方法。
根据本公开的另一方面,还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被处理器执行时实现根据上述的方法。
根据本公开的另一方面,还提供了一种计算机程序产品。
参考图10,现将描述可以作为本公开的服务器或客户端的电子设备1000的结构框图,其是可以应用于本公开的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
如图10所示,设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接入接口1005也连接至总线1004。
设备1000中的多个部件连接至I/O接入接口1005,包括:输入单元1006、输出单元1007、存储单元1008以及通信单元1009。输入单元1006可以是能向设备1000输入信息的任何类型的设备,输入单元1006可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入,并且可以包括但不限于鼠标、键盘、触摸屏、轨迹板、轨迹球、操作杆、麦克风和/或遥控器。输出单元1007可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1008可以包括但不限于磁盘、光盘。通信单元1009允许设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙TM设备、1302.11设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1201执行上文所描述的各个方法和处理,例如方法100。例如,在一些实施例中,方法100可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元1008。在一些实施例中,计算机程序的部分或者全部可以经由ROM1002和/或通信单元1009而被载入和/或安装到设备1000上。当计算机程序加载到RAM 1003并由计算单元1101执行时,可以执行上文描述的方法200的一个或多个步骤。备选地,在其他实施例中,计算单元1001可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行方法100。
本文中以上描述的***和技术的各种实施方式可以在数字电子电路***、集成电路***、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上***的***(SOC)、负载可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程***上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储***、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储***、该至少一个输入装置、和该至少一个输出装置。
用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在计算机上实施此处描述的***和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的***和技术实施在包括后台部件的计算***(例如,作为数据服务器)、或者包括中间件部件的计算***(例如,应用服务器)、或者包括前端部件的计算***(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的***和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算***中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将***的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机***可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式***的服务器,或者是结合了区块链的服务器。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本公开中记载的各步骤可以并行地执行、也可以顺序地或以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
虽然已经参照附图描述了本公开的实施例或示例,但应理解,上述的方法、***和设备仅仅是示例性的实施例或示例,本发明的范围并不由这些实施例或示例限制,而是仅由授权后的权利要求书及其等同范围来限定。实施例或示例中的各种要素可以被省略或者可由其等同要素替代。此外,可以通过不同于本公开中描述的次序来执行各步骤。进一步地,可以以各种方式组合实施例或示例中的各种要素。重要的是随着技术的演进,在此描述的很多要素可以由本公开之后出现的等同要素进行替换。
Claims (19)
1.一种用于去中心化集群的方法,包括:
通过集群服务的端口接收至少一个节点的访问,所述至少一个节点中的每一个节点被配置成基于所述访问执行加入集群的操作;以及
响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端,以使所述集群服务的端口映射为所述第一节点的接入接口的端口,其中,
所述接入接口被配置用于基于所述至少一个节点中的区别于所述第一节点的第二节点的所述操作,使所述第二节点加入包含所述第一节点的第一集群。
2.根据权利要求1所述的方法,其中,所述至少一个节点包括业务节点,所述通过集群服务的端口接收至少一个节点的访问包括:
响应于接收到所述业务节点的启动服务的请求,使所述业务节点与所述集群服务进行第一连接,以对所述集群服务的端口进行第一次访问;以及
响应于确定与所述第一次访问对应的所述操作失败,使所述业务节点与所述集群服务进行第二连接,以对所述集群服务的端口进行第二次访问。
3.根据权利要求2所述的方法,其中,所述响应于确定与所述第一次访问对应的所述操作失败,使所述业务节点与所述集群服务进行第二连接包括:
响应于确定与所述第一次访问对应的所述操作失败,获取第一时间点;以及
响应于当前时间点距离所述第一时间点的时间间隔小于预设值,使所述业务节点进行所述第二连接。
4.根据权利要求3所述的方法,其中,所述通过集群服务的端口接收至少一个节点的访问还包括:
响应于当前时间点距离所述第一时间点的时间间隔大于或者等于预设值,使所述业务节点重新发送所述启动服务的请求。
5.根据权利要求1所述的方法,其中,所述至少一个节点包括种子节点,所述方法还包括:
响应于确定所述种子节点的所述操作失败,建立所述第一集群,所述第一集群包括所述种子节点;以及
响应于所述第一集群的建立,确定所述种子节点的所述操作成功。
6.根据权利要求5所述的方法,其中,还包括:
基于所述种子节点的接入接口接收到所述第一节点对应于所述操作的加入请求,使所述第一集群包括所述第一节点;以及
响应于所述第一集群包括所述第一节点,确定所述第一节点的所述操作成功。
7.根据权利要求6所述的方法,还包括:
基于所述第一集群中的多个节点中的任意一个的接入接口接收到所述第二节点对应于所述操作的加入请求,使所述第一集群包括所述第二节点;以及
响应于所述第一集群包括所述第二节点,确定所述第二节点的所述操作成功。
8.根据权利要求1所述的方法,其中,所述响应于确定所述第一节点成功加入集群,将所述第一节点的接入接口挂载到所述集群服务的后端包括:
响应于确定所述第一节点的所述操作成功,获取所述第一节点的服务状态;以及
响应于确定所述第一节点的所述服务状态为服务正常,将所述第一节点的接入接口挂载到所述集群服务的后端。
9.根据权利要求8所述的方法,其中,所述至少一个节点包括种子节点和与所述种子节点对应的至少一个副本;以及其中,所述响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端还包括:
响应于所述种子节点和与所述至少一个副本中的每一个副本的所述操作成功,顺序启动所述种子节点和所述至少一个副本中的每一个副本,以使同一时刻有且仅有所述种子节点或者所述至少一个副本中的一个副本的服务状态正常。
10.根据权利要求9所述的方法,其中,所述顺序启动所述种子节点和所述至少一个副本中的每一个副本包括:
响应于确定所述种子节点的所述服务状态为服务正常,使所述至少一个副本中的每一个副本的所述服务状态为服务失效;以及
响应于确定所述种子节点的服务状态为服务失效,启动所述至少一个副本中的第一副本,使所述第一副本的所述服务状态为服务正常。
11.一种用于去中心化集群的装置,包括:
接收单元,被配置用于通过集群服务的端口接收至少一个节点的访问,所述至少一个节点中的每一个节点被配置成基于所述访问执行加入集群的操作;以及
挂载单元,被配置用于响应于确定所述至少一个节点中的第一节点的所述操作成功,将所述第一节点的接入接口挂载到所述集群服务的后端,以使所述集群服务的端口映射为所述第一节点的接入接口的端口,其中,
所述接入接口被配置用于基于所述至少一个节点中的区别于所述第一节点的第二节点的所述操作,使所述第二节点加入包含所述第一节点的第一集群。
12.根据权利要求11所述的装置,其中,所述至少一个节点包括业务节点,所述接收单元包括:
第一连接单元,响应于接收到所述业务节点的启动服务的请求,使所述业务节点与所述集群服务进行第一连接,以对所述集群服务的端口进行第一次访问;以及
第二连接单元,被配置用于响应于确定与所述第一次访问对应的所述操作失败,使所述业务节点与所述集群服务进行第二连接,以对所述集群服务的端口进行第二次访问。
13.根据权利要求12所述的装置,其中,所述第二连接单元包括:
获取单元,被配置用于响应于确定与所述第一次访问对应的所述操作失败,获取第一时间点;以及
第二连接子单元,被配置用于响应于当前时间点距离所述第一时间点的时间间隔小于预设值,使所述业务节点进行所述第二连接。
14.根据权利要求13所述的装置,其中,所述接收单元还包括:
控制单元,响应于当前时间点距离所述第一时间点的时间间隔大于预设值,使所述业务节点重新发送所述对应的服务启动请求。
15.根据权利要求11所述的装置,其中,所述至少一个节点包括种子节点,所述装置还包括:
构建单元,响应于确定所述种子节点的所述操作失败,建立所述第一集群,所述第一集群包括所述种子节点;以及
第一确定单元,被配置用于响应于所述第一集群的建立,确定所述种子节点的所述操作成功。
16.根据权利要求15所述的装置,其中,还包括:
接收子单元,被配置用于基于所述种子节点的接入接口的接收到所述第一节点对应于所述操作的加入请求,使所述第一集群包括所述第一节点;以及
第二确定单元,被配置用于响应于所述第一集群包括所述第一节点,确定所述第一节点的所述操作成功。
17.根据权利要求16所述的装置,其中,所述接收子单元还被配置用于基于所述第一集群中的多个节点中的任意一个的接入接口接收到所述第二节点对应于所述操作的加入请求,使所述第一集群包括所述第二节点;以及其中
所述第二确定单元还被配置用于响应于所述第一集群包括所述第二节点,确定所述第二节点的所述操作成功。
18.一种电子设备,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-10中任一项所述的方法。
19.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-10中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110949191.6A CN113660339B (zh) | 2021-08-18 | 2021-08-18 | 用于去中心化集群的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110949191.6A CN113660339B (zh) | 2021-08-18 | 2021-08-18 | 用于去中心化集群的方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113660339A CN113660339A (zh) | 2021-11-16 |
CN113660339B true CN113660339B (zh) | 2023-08-04 |
Family
ID=78480959
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110949191.6A Active CN113660339B (zh) | 2021-08-18 | 2021-08-18 | 用于去中心化集群的方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113660339B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892689B1 (en) * | 2008-04-30 | 2014-11-18 | Netapp, Inc. | Method and apparatus for a storage server to automatically discover and join a network storage cluster |
CN107087032A (zh) * | 2017-05-11 | 2017-08-22 | 腾讯科技(深圳)有限公司 | 实现集群组建的方法和装置 |
CN107222342A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种集群管理网络配置方法 |
CN109257195A (zh) * | 2017-07-12 | 2019-01-22 | 华为技术有限公司 | 集群中节点的故障处理方法及设备 |
CN111090537A (zh) * | 2019-12-16 | 2020-05-01 | 无锡华云数据技术服务有限公司 | 集群启动方法、装置、电子设备及可读存储介质 |
CN111277460A (zh) * | 2020-01-17 | 2020-06-12 | 江苏满运软件科技有限公司 | 一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备 |
CN111478953A (zh) * | 2020-03-27 | 2020-07-31 | 北京金山云网络技术有限公司 | 服务器集群的自构建方法、装置、***、设备及存储介质 |
CN111857963A (zh) * | 2020-07-28 | 2020-10-30 | 山东超越数控电子股份有限公司 | 一种针对Proxmox VE的容器编排实现方法、装置、设备和介质 |
CN112311596A (zh) * | 2020-10-22 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 数据管理方法、装置、设备及计算机存储介质 |
CN112910796A (zh) * | 2021-01-27 | 2021-06-04 | 北京百度网讯科技有限公司 | 流量管理方法、装置、设备、存储介质以及程序产品 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103179178B (zh) * | 2011-12-26 | 2016-06-15 | 杭州华三通信技术有限公司 | 扩展集群间聚合组成员端口的方法和设备 |
-
2021
- 2021-08-18 CN CN202110949191.6A patent/CN113660339B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892689B1 (en) * | 2008-04-30 | 2014-11-18 | Netapp, Inc. | Method and apparatus for a storage server to automatically discover and join a network storage cluster |
CN107087032A (zh) * | 2017-05-11 | 2017-08-22 | 腾讯科技(深圳)有限公司 | 实现集群组建的方法和装置 |
CN107222342A (zh) * | 2017-05-27 | 2017-09-29 | 郑州云海信息技术有限公司 | 一种集群管理网络配置方法 |
CN109257195A (zh) * | 2017-07-12 | 2019-01-22 | 华为技术有限公司 | 集群中节点的故障处理方法及设备 |
CN111090537A (zh) * | 2019-12-16 | 2020-05-01 | 无锡华云数据技术服务有限公司 | 集群启动方法、装置、电子设备及可读存储介质 |
CN111277460A (zh) * | 2020-01-17 | 2020-06-12 | 江苏满运软件科技有限公司 | 一种ZooKeeper容器化控制的方法、装置、存储介质及电子设备 |
CN111478953A (zh) * | 2020-03-27 | 2020-07-31 | 北京金山云网络技术有限公司 | 服务器集群的自构建方法、装置、***、设备及存储介质 |
CN111857963A (zh) * | 2020-07-28 | 2020-10-30 | 山东超越数控电子股份有限公司 | 一种针对Proxmox VE的容器编排实现方法、装置、设备和介质 |
CN112311596A (zh) * | 2020-10-22 | 2021-02-02 | 深圳前海微众银行股份有限公司 | 数据管理方法、装置、设备及计算机存储介质 |
CN112910796A (zh) * | 2021-01-27 | 2021-06-04 | 北京百度网讯科技有限公司 | 流量管理方法、装置、设备、存储介质以及程序产品 |
Non-Patent Citations (1)
Title |
---|
王毅睿 ; 邢少华 ; 罗亚男 ; 孙芳 ; .基于EJB/CORBA的分布计算***的研究.铁道通信信号.2006,(第06期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN113660339A (zh) | 2021-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170163479A1 (en) | Method, Device and System of Renewing Terminal Configuration In a Memcached System | |
US20170163478A1 (en) | Method,electronic device and system for updating client configuration in key-value pair database | |
EP3817338B1 (en) | Method and apparatus for acquiring rpc member information, electronic device and storage medium | |
WO2016107443A1 (zh) | 一种快照处理方法及相关设备 | |
CN111181765A (zh) | 一种任务处理方法和装置 | |
CN111770176A (zh) | 流量调度方法及装置 | |
CN107818027B (zh) | 名字节点主备切换的方法、装置和分布式*** | |
CN113660339B (zh) | 用于去中心化集群的方法和装置 | |
WO2023229531A2 (en) | Data transmission method and apparatus, terminal, and storage medium | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
CN113326192B (zh) | 用于移动端的应用测试方法、装置、设备及存储介质 | |
JP2010086137A (ja) | メッセージキューイング方法及びプログラム | |
CN113420275B (zh) | 数据连接处理方法、相关装置及计算机程序产品 | |
CN113726881B (zh) | 通信连接建立方法、相关装置及计算机可读存储介质 | |
CN113596197B (zh) | 一种地址切换方法、装置、电子设备及存储介质 | |
CN116193481A (zh) | 一种5g核心网处理方法、装置、设备及介质 | |
CN112153754B (zh) | 点对点连接方法、装置、电子设备及存储介质 | |
CN113641688A (zh) | 节点更新方法、相关装置及计算机程序产品 | |
CN114567540B (zh) | 主备节点切换方法、装置、设备、介质及程序产品 | |
CN114513524B (zh) | 一种资源同步方法、装置、电子设备和存储介质 | |
CN113596172B (zh) | 分布式集群中节点更新方法和装置 | |
US12032998B2 (en) | Resource synchronization method, electronic device and storage medium preliminary class | |
CN113992690B (zh) | 消息传递方法、装置、设备和存储介质 | |
CN112769824B (zh) | 一种信息传输状态更新方法、终端、装置及存储介质 | |
CN113741937B (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 |