CN110674215A - 一种分布式系统的选主方法、装置和分布式系统 - Google Patents

一种分布式系统的选主方法、装置和分布式系统 Download PDF

Info

Publication number
CN110674215A
CN110674215A CN201910875233.9A CN201910875233A CN110674215A CN 110674215 A CN110674215 A CN 110674215A CN 201910875233 A CN201910875233 A CN 201910875233A CN 110674215 A CN110674215 A CN 110674215A
Authority
CN
China
Prior art keywords
node
nodes
master
main
distributed system
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.)
Pending
Application number
CN201910875233.9A
Other languages
English (en)
Inventor
毕庆国
李涛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Apas Technology Co Ltd
Original Assignee
Zhengzhou Apas Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Zhengzhou Apas Technology Co Ltd filed Critical Zhengzhou Apas Technology Co Ltd
Priority to CN201910875233.9A priority Critical patent/CN110674215A/zh
Publication of CN110674215A publication Critical patent/CN110674215A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4418Suspend and resume; Hibernate and awake
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Landscapes

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

Abstract

本申请公开了一种分布式系统的选主方法、装置和分布式系统,该方法包括:在分布式系统启动时,基于预先得到的配置文件,确定分布式系统中包括的多个节点;若多个节点中不包括主节点,则多个节点发起选主请求,节点在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;在选主结束后,若多个节点中不存在目标节点,则多个节点进入休眠状态,目标节点获得的票数大于多个节点的数量的一半;当存在结束休眠状态的节点时,结束休眠状态的节点再次发起选主请求,处于休眠状态的节点将自身的票数投给结束休眠状态的一个节点;在选主结束后,若存在目标节点,则选举目标节点为主节点。实现逻辑较为简单,可以方便地实现分布式系统的数据一致性。

Description

一种分布式系统的选主方法、装置和分布式系统
技术领域
本申请涉及计算机技术领域,尤其涉及一种分布式系统的选主方法、装置和分布式系统。
背景技术
分布式系统中可以包括多个服务节点,分布式系统在对外提供服务的过程中,多个服务节点中的数据需要保持一致,以保证分布式系统的数据一致性,避免同一任务在多个服务节点执行多次。
为了保证分布式系统的数据一致性,通常可以采用一致性协议进行选主,并基于选主得到的主节点对其他节点进行控制,进而实现分布式系统的数据一致性。然而,在实际应用中,在基于一致性协议进行选主时的具体实现通常较为复杂,导致难以实现分布式系统的数据一致性。
发明内容
本申请实施例提供一种分布式系统的选主方法、装置和分布式系统,用于解决现有技术中在基于一致性协议进行选主时的具体实现较为复杂,从而难以实现分布式系统的数据一致性的问题。
为了解决上述技术问题,本申请是这样实现的:
本申请实施例提供一种分布式系统的选主方法,包括:
在分布式系统启动时,基于预先得到的配置文件,确定所述分布式系统中包括的多个节点,所述配置文件中包括所述多个节点的标识信息;
若所述多个节点中不包括主节点,则所述多个节点发起选主请求,其中,一个节点在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则所述多个节点进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
当存在结束休眠状态的节点时,所述结束休眠状态的节点再次发起选主请求,其中,处于休眠状态的节点将自身的票数投给结束休眠状态的一个节点;
在选主结束后,若所述多个节点中存在所述目标节点,则选举所述目标节点为主节点。
本申请实施例提供一种分布式系统,所述分布式系统包括多个节点,所述多个节点在所述分布式系统启动时,基于预先得到的配置文件确定得到,所述配置文件中包括所述多个节点的标识信息,其中:
若所述多个节点中不包括主节点,则所述多个节点发起选主请求,其中,一个节点在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则所述多个节点进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
当存在结束休眠状态的节点时,所述结束休眠状态的节点再次发起选主请求,其中,处于休眠状态的节点将自身的票数投给结束休眠状态的一个节点;
在选主结束后,若所述多个节点中存在所述目标节点,则选举所述目标节点为主节点。
本申请实施例提供一种分布式系统的选主方法,包括:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
本申请实施例提供一种分布式系统的选主装置,所述装置应用于分布式系统中的一个节点,所述节点与所述分布式系统中的其他节点在所述分布式系统启动时,基于预先得到的配置文件确定得到,所述配置文件中包括所述分布式时系统中的多个节点的标识信息,所述装置包括:
选主单元,在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
休眠单元,在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
所述选主单元,若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
确定单元,在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
本申请实施例提供一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
本申请实施例采用的上述至少一个技术方案能够达到以下技术效果:
本申请实施例提供的技术方案,分布式系统在启动时,由于可以基于预先得到配置文件,通过自发现的方式确定分布式系统中包含的多个节点,并在分布式系统中不存在主节点的情况下,多个节点可以自主地进行选主,因此,可以方便地选举得到主节点,从而实现分布式系统中的数据一致性。
此外,由于可以通过自发现的方式确定分布式系统中的包含的多个节点,因此,本申请实施例提供的选主方法还可以对外提供接口,这样,当其他分布式系统想要进行选主时,只需要接入该接口就可以方便地选举得到主节点,无需复杂的实现逻辑,从而有效简化分布式系统的选主逻辑,可以方便地实现分布式系统中的数据一致性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请的一个实施例分布式系统的选主方法的流程示意图;
图2是本申请的一个实施例分布式系统的选主方法的示意图;
图3是本申请的一个实施例分布式系统处理写请求的示意图;
图4是本申请的一个实施例分布式系统的选主方法的流程示意图;
图5是本申请的一个实施例电子设备的结构示意图;
图6为本申请实施例提供的一种分布式系统的选主装置的结构示意图。
具体实施方式
现有的分布式系统在对外提供服务的过程中,需要保证内部多个节点之间的数据一致性,以避免同一个任务被执行多次。为了实现这个目的,分布式系统通常可以基于一致性协议从多个节点中选举主节点,并由主节点对其他节点的数据写入进行控制,进而保证多个节点之间的数据一致性。
然而,在基于一致性协议从多个节点中选举主节点时,相应代码的开发难度较高,具体实现逻辑通常较为复杂,导致难以基于一致性协议实现分布式系统的数据一致性。
为了解决上述技术问题,本申请实施例提供一种分布式系统的选主方法、装置和分布式系统,该方法包括:在分布式系统启动时,基于预先得到的配置文件,确定所述分布式系统中包括的多个节点,所述配置文件中包括所述多个节点的标识信息;若所述多个节点中不包括主节点,则所述多个节点发起选主请求,其中,一个节点在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;在选主结束后,若所述多个节点中不存在目标节点,则所述多个节点进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半,每个节点的休眠时长随机确定;当存在结束休眠状态的节点时,所述结束休眠状态的节点再次发起选主请求,其中,处于休眠状态的节点将自身的票数投给结束休眠状态的一个节点;在选主结束后,若所述多个节点中存在所述目标节点,则选举所述目标节点为主节点。
本申请实施例提供的技术方案,分布式系统在启动时,由于可以基于预先得到配置文件,通过自发现的方式确定分布式系统中包含的多个节点,并在分布式系统中不存在主节点的情况下,多个节点可以自主地进行选主,因此,可以方便地选举得到主节点,从而实现分布式系统中的数据一致性。
此外,由于可以通过自发现的方式确定分布式系统中的包含的多个节点,因此,本申请实施例提供的选主方法还可以对外提供接口,这样,当其他分布式系统想要进行选主时,只需要接入该接口就可以方便地选举得到主节点,无需复杂的实现逻辑,从而有效简化分布式系统的选主逻辑,可以方便地实现分布式系统中的数据一致性。
下面结合本申请具体实施例及相应的附图对本申请技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
以下结合附图,详细说明本申请各实施例提供的技术方案。
图1为本申请实施例提供的一种分布式系统的选主方法的流程示意图。所述方法如下所述。
S102:在分布式系统启动时,基于预先得到的配置文件,确定所述分布式系统中包括的多个节点。
在S102中,分布式系统可以预先将其包括的多个节点的标识信息写入配置文件中,这样,在分布式系统启动时,可以基于预先得到的配置文件,确定分布式系统中包括的多个节点。
配置文件中写入的标识信息可以是多个节点的IP地址,也可以是其他可以唯一标识多个节点的信息,这里不做具体限定。在分布式系统启动时,可以从配置文件中读取预先写入的多个标识信息,基于读取到的标识信息,可以确定标识信息对应的节点即为分布式系统中包括的节点。
需要说明的是,由于本实施例可以通过配置文件确定分布式系统中包括的节点,无需借助于其他辅助工具,因此,可以实现分布式系统中多个节点的自发现,简化确定多个节点时的步骤。
S104:若所述多个节点中不包括主节点,则所述多个节点发起选主请求。
在S104中,在确定分布式系统中包括的多个节点后,多个节点可以自主询问其中是否存在主节点(即leader)。
多个节点在询问是否存在主节点时,以分布式系统中包括节点1、2和3为例,具体地:
节点1可以确定自身是否是主节点,若是,则可以确定节点1、2和3中存在主节点,该主节点即为节点1;若不是,则可以依次询问节点2和3是否是主节点,若节点2和节点3中有一个节点为主节点,则可以确定节点1、2和3中存在主节点,若节点2和3均不是主节点,则可以确定节点1、2和3中不存在主节点。同样地,节点2和节点3也可以基于相同的方法询问主节点。这样,最终可以确定分布式系统中是否存在主节点。
本实施例中,考虑到分布式系统在启动时通常不存在主节点,因此,可以以多个节点中不存在主节点为例进行说明。
若多个节点中不存在主节点,则多个节点可以发起选主请求,以便从多个节点中选举主节点。其中,多个节点在发起选主请求时,多个节点的角色可以由跟随节点(follower,分布式系统启动时多个节点默认为跟随节点)变为候选节点(candidate)。
多个节点在发起选主请求时,基于优先原则,每个节点可以将自身的票数投给自己,即每个节点可以选举自己为主节点,并向其他节点发送选主请求,,同时也会接收到来自其他节点的选主请求。其中,需要说明的是,节点在选举自己为主节点后,就没有了投票权,当接收到来自其他节点的选主请求时,会拒绝其他节点的选主请求。
本实施例中,多个节点可以对应多个任期值,一个任期制可以对应一个节点,多个节点在发起选主请求时,还可以通过协商的方式统一多个节点对应的任期值(也可以称为任期ID),其中,任期值可以用于标识节点作为主节点的时间,具体可以是大于或等于0的整数,多个节点在对任期值进行统一后,统一后的任期值可以是多个节点对应的任期值中的最大值。
以分布式系统中包括节点1、2和3为例,节点1、2和3在通过协商的方式统一任期值时,具体实现方式可以包括:
节点1可以将自己的任期值发给节点2,节点2将自己的任期值与节点1的任期值进行比较,若节点2的任期值大于节点1的任期值,则节点2可以将自己的任期值发给节点1,以覆盖节点1的任期值,否则,节点1的任期值将覆盖节点2的任期值。这样,可以实现节点1和节点2之间任期值的统一。之后,节点1可以将此时的任期值发给节点3,并基于相同的方法与节点3统一任期值。同样地,节点2和节点3也可以通过相同的方法将自己的任期值发给其他节点,以进行任期值的统一,最终可以实现节点1、2和3之间的任期值的统一。
在同一任期值之前,若节点1的任期值为1,节点2的任期值为10,节点3的任期值为100,则在将节点1、2和3的任期值统一后,节点1、2和3的任期值均为100。
S106:在选主结束后,若所述多个节点中不存在目标节点,则所述多个节点进入休眠状态。其中,所述目标节点获得的票数大于所述多个节点的数量的一半。
在S106中,在选主结束后,每个节点可以基于自身获得的票数,确定多个节点中是否存在目标节点。
本实施例中,由于在选主过程中,每个节点把自身的票数投给了自己且拒绝了其他节点的选主请求,因此,在选主结束后,每个节点的票数均为1,此时,多个节点中不存在目标节点。
若多个节点中不存在目标节点,则可以说明选主失败,此时,多个节点可以进入休眠状态,以便在节点结束休眠状态时再次发起选主请求。其中,每个节点的休眠时长可以随机确定,本实施例以多个节点的休眠时长不同为例进行说明。
多个节点在进入休眠状态后,可以将自身的任期值加一,得到统一的新的任期值。这样,在多个节点结束休眠状态并再次发起选举请求时,可以基于统一的新的任期值发起选举请求。
S108:当存在结束休眠状态的节点时,所述结束休眠状态的节点再次发起选主请求。
在S108中,多个节点在进入休眠状态后,若存在一个或多个节点结束休眠状态,则结束休眠的节点可以再次发起选主请求。
本实施例中,结束休眠状态的节点再次发起选主请求时,也可以基于优先原则将自身的票数投给自己,并在接收到来自其他节点的选主请求时,拒绝其他节点的选主请求。此外,针对未结束休眠状态的节点,由于节点处于休眠状态,因此,节点不能将自己的票数投给自己,而是将自己的票数投给已结束休眠的一个节点。
以下以两种情况为例进行说明:
第一种情况:
多个节点中仅有一个节点(以下可以由第一节点表示)结束休眠状态,其他节点均处于休眠状态。
在第一种情况中,第一节点可以再次发起选主请求,其中,第一节点再次发起选主请求时,基于优先原则,可以将自身的票数投给自己,并向其他节点发送选主请求。其他节点在接收到第一节点的选主请求时,由于其他节点仍处于休眠状态,不会将自身的票数投给自己,因此,其他节点可以将自身的票数投给第一节点。
第二种情况:
多个节点中有两个或更多个节点同时结束休眠状态,其他节点均处于休眠节点(主要针对节点的数量大于或等于3的分布式系统)。
在第二种情况中,以第二节点和第三节点同时结束休眠状态为例,第二节点和第三节点在结束休眠状态时,可以再次向发起选主请求,其中,第二节点再次发起选主请求时,基于优先原则,可以将自身的票数投给自己,并向第三节点以及处于休眠状态的其他节点发送选主请求。同样地,第三节点再次发起选主请求时,也可以将自身的票数投给自己,并向第二节点以及处于休眠状态的其他节点发送选主请求。
第二节点在向第三节点发送选主请求后,由于第三节点已将自身的票数投给了自己,因此,会拒绝第二节点的选主请求,同样地,第三节点在向第二节点发送选主请求后,由于第二节点已将自身的票数投给了自己,因此,会拒绝第三节点的选主请求。
第二节点和第三节点在向处于休眠状态的其他节点发送选主请求后,其他节点可以将自身的票数投给先接收到的选主请求对应的节点。例如,若其他节点先接收到第二节点的选主请求,则可以将自身的票数投给第二节点,并在接收到第三节点的选主请求时,拒绝第三节点的选主请求;若其他节点先接收到第三节点的选主请求,则可以将自身的票数投给第三节点,并在接收到第二节点的选主请求时,拒绝第二节点的选主请求。
S110:在选主结束后,若所述多个节点中存在所述目标节点,则选举所述目标节点为主节点。
在S110中,在选主结束后,每个节点可以基于自身获得的票数,确定多个节点中是否存在目标节点,其中,目标节点获得的票数大于分布式系统中包括的多个节点的数量的一半。
若多个目标节点中存在目标节点,则可以将目标节点选举为主节点;若多个目标节点中不存在目标节点,则可以重复执行上述记载的S106至S110,直至选举得到主节点。
本实施例中,考虑到在选举过程中,存在处于休眠状态的节点,且处于休眠状态的节点将自身的票数投给了已结束休眠状态的节点,在选举结束后,多个节点中很大可能会存在目标节点,因此,以下可以以选举得到主节点为例进行说明。
在将目标节点选举为主节点后,目标节点的角色由候选节点变为主节点,此时,主节点可以向其他节点发送通知信息,该通知信息中可以包括主节点的标识信息,具体可以用于通知其他节点该标识信息对应的节点已被选举为主节点。其他节点在接收到通知信息后,角色可以由候选节点变为跟随节点,并确定强制同步主节点的数据。
至此,基于上述记载的方法可以选举得到分布式系统中的主节点。
这样,分布式系统在启动时,由于可以基于预先得到配置文件,通过自发现的方式确定分布式系统中包含的多个节点,并在分布式系统中不存在主节点的情况下,多个节点可以自主地进行选主,因此,可以方便地选举得到主节点,从而实现分布式系统中的数据一致性。
为了便于理解本实施例中分布式系统的选主方法,可以参见图2。
图2中,分布式系统在启动时,可以基于预先得到的配置文件,确定其包含的3个节点,这3个节点分别是节点1、节点2和节点3。
在确定节点1、节点2和节点3后,3个节点可以相互询问是否存在主节点。图2中,3个节点在相互询问后,确定不存在主节点,此时,3个节点可以发起选主请求。在发起选主请求时,3个节点的角色为候选节点,且,3个节点通过协商的方式统一任期值。其中,由于3个节点为初次启动,因此,可以默认任期值均为0,即在协商后,3个节点的任期值为0。
3个节点在发起选主请求后,基于优先原则,每个节点均会将自身的票数投给自己,同时询问其他节点(即向其他节点发送选主请求)。具体地,针对节点1,节点1会将自己的票数投给了自己,同时询问节点2和节点3,此时,由于节点2和节点3会将自己的票数投给自己,因此,节点2和节点3就没有了投票权,将拒绝节点1的选主请求,这样,节点1在选主结束后,得到的票数为1。同样地,节点2和节点3也基于相同的方法进行选主,在选主结束后,得到的票数均为1。
本轮选主结束后,由于3个节点的票数均为1,因此,不存在目标节点(票数大于1的节点),因此,选主失败,此时3个节点的任期值自动加一,并进入休眠状态。其中,3个节点的休眠时长随机确定。
图2中,节点1先于节点2和节点3结束休眠状态,那么,节点1将会发起新一轮的选主请求。节点1在发起选主请求时,也可以基于优先原则将自身的票数投给自己,同时询问节点2和节点3,此时,由于节点2和节点3均处于休眠状态,因此,节点2和节点3不会将自己的票数投给自己,而是将自己的票数投给节点1。这样,在结束选举后,节点1得到的票数为3,大于节点数量的一半,则,节点1成为任期值为1的主节点。
节点1在选举为主节点后,可以向节点2和节点3发送自己选举为主节点的通知信息,节点2和节点3在接收到通知信息后,可以将角色由候选节点变更为跟随节点,并确定强制同步节点1的数据。
需要说明的是,在图2中,如果节点3和节点1同时结束休眠状态,则节点3也可以发起选主请求,并在发起选主请求时,将自身的票数投给自己,同时询问节点1和节点2。针对节点2而言,若先收到节点1的选主请求,则将自身的票数投给节点1,节点1将选举为主节点,若先收到节点3的选主请求,则将自身的票数投给节点3,节点3将选举为主节点。
本实施例中,在选举得到分布式系统中的主节点后,当分布式系统接收到来自外部的写入请求时,例如,接收到来自客户端的写入请求时,主节点可以控制其他节点强制同步数据,进而保证分布式系统的数据一致性。
以下可以分两种情况具体说明分布式系统是如何基于主节点保证数据一致性的。
第一种情况:
若主节点接收到写入请求,则主节点可以基于写入请求更新本地数据,在更新本地数据后,可以将更新后的数据强制同步至其他节点,进而保证分布式系统的数据一致性。
第二种情况:
若其他节点中的一个跟随节点接收到写入请求,则跟随节点不会对写入请求进行处理,而是将写入请求转发至主节点,主节点在接收到写入请求时,基于写入请求更新本地数据,并将更新后的数据同步至其他节点,进而保证分布式系统的数据一致性。
需要说明的是,针对上述两种情况,主节点在将更新后的数据同步至其他节点后,若主节点以及其他节点中至少一半的节点写入成功,则可以确定数据写入成功,保存写入成功的状态,并将主节点的任期值加一,同时,针对没有同步数据成功的节点,主节点可以强制这些节点进行数据同步,以保证数据一致性;反之,若主节点以及其他节点中至少一半的节点没有写入成功,则可以确定数据写入失败。当数据写入失败时,分布式系统可以反馈写入失败的通知信息,以便通知数据写入失败。
为了便于理解,可以参见图3。
图3所示的分布式系统中包含节点1、节点2和节点3,其中,节点1为主节点,节点2和节点3为跟随节点。
分布式系统在对外提供服务的过程中,跟随节点2接收到来自客户端的写入请求,此时,节点2可以查询当前的主节点,在确定当前的主节点为节点1时,将写入请求转发给节点1。
节点1在接收到写入请求后,基于写入请求更新本地数据。在更新本地数据后,将更新后的数据发送至节点2和节点3,并要求节点2和节点3同步更新数据。
图2中,节点2同步数据成功,节点3同步数据失败,此时,节点2将成功同步的信息返回节点1,节点3将同步失败的信息返回节点1,节点1在确定3个节点中2个节点写入成功时,保存写入成功的状态,并将任期值加一,同时要求节点3强制进行数据同步,以保证分布式系统的数据一致性。
分布式系统在写入成功后,可以向客户端返回写入成功的通知信息。
可选地,若图3所示的节点2和节点3均未写入成功,则节点1可以确定写入失败,分布式系统可以向客户端返回写入失败的通知信息。
需要说明的是,若图3中的节点1接收到来自客户端的写入请求,则可以基于图3中节点2将写入请求转发至节点1后的步骤对写入请求进行处理,从而保证分布式系统的数据一致性,详细过程这里不再重复描述。
本实施例中,分布式系统在对外提供服务的过程中,主节点还可以以预设频率向其他节点广播自身的存活信息,并不断更新任期值,以便续签主节点的任期。其他节点在接收到主节点的存活信息后,可以确定主节点存在,并与主节点保持数据同步。
可选地,若其他节点在预设时长内没有接收到来自主节点的存活信息(例如,主节点在宕机后,其他节点在预设时长内将无法接收到主节点的存活信息),则其他节点可以由跟随节点变为候选节点,并发起选主请求,以便选举得到新的主节点。其中,在选举新的主节点时,可以基于上述S106至S110记载的内容实现,这里不再重复描述。
需要说明的是,本申请实施例提供的选主方法可以采用Spring boot的web接口实现,并且,由于本申请实施例提供的选主方法可以通过自发现的方式确定分布式系统中的包含的多个节点,因此,该选主方法还可以对外提供接口,对外提供的接口可以用于外部集群接入,外部集群在接入该接口后,在进行选主时,可以基于本申请实施例提供的选主方法进行选主,在选举得到主节点后,外部集群在接收到写入请求时,还可以通过调用该接口对外部集群中的多个节点进行数据同步,也就是说,当其他分布式系统想要进行选主时,只需要接入本申请实施例的选主方法提供的外部接口,就可以方便地选举得到主节点,无需复杂的实现逻辑,从而有效简化分布式系统的选主逻辑,可以方便地实现分布式系统中的数据一致性。
图4是本申请的一个实施例分布式系统的选主方法的流程示意图。图4所示的实施例的执行主体可以是分布式系统中的一个节点,该节点与分布式系统中的其他节点在分布式系统启动时,可以基于预先得到的配置文件确定得到,配置文件中包括分布式时系统中的多个节点的标识信息。图4所示的选主方法包括以下步骤。
S402:在确定所述多个节点中不包括主节点时,发起选主请求。
其中,节点在发起选主请求时,可以获得自身的票数并拒绝其他节点的选主请求。
S404:在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半。
节点在进入休眠状态时,休眠时长可以随机确定。
S406:若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点。
S408:在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
上述S402至S408的具体实现,可以参见图1所示实施例中相应步骤的具体实现,这里不再重复描述。
本申请实施例提供的技术方案,分布式系统在启动时,由于可以基于预先得到配置文件,通过自发现的方式确定分布式系统中包含的多个节点,并在分布式系统中不存在主节点的情况下,多个节点可以自主地进行选主,因此,可以方便地选举得到主节点,从而实现分布式系统中的数据一致性。
此外,由于可以通过自发现的方式确定分布式系统中的包含的多个节点,因此,本申请实施例提供的选主方法还可以对外提供接口,这样,当其他分布式系统想要进行选主时,只需要接入该接口就可以方便地选举得到主节点,无需复杂的实现逻辑,从而有效简化分布式系统的选主逻辑,可以方便地实现分布式系统中的数据一致性。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
图5是本申请的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成分布式系统的选主装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
上述如本申请图5所示实施例揭示的分布式系统的选主装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(Central ProcessingUnit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
该电子设备还可执行图4的方法,并实现分布式系统的选主装置在图4所示实施例的功能,本申请实施例在此不再赘述。
当然,除了软件实现方式之外,本申请的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
本申请实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图4所示实施例的方法,并具体用于执行以下操作:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
图6为本申请实施例提供的一种分布式系统的选主装置的结构示意图。所述装置可以应用于分布式系统中的一个节点,该节点与分布式系统中的其他节点在分布式系统启动时,基于预先得到的配置文件确定得到,配置文件中包括所述分布式时系统中的多个节点的标识信息,所述装置具体可以包括:选主单元61、休眠单元62以及确定单元63,其中:
选主单元61,在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
休眠单元62,在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
所述选主单元61,若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
确定单元63,在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
本申请实施例提供的分布式系统的选主装置还可执行图4的方法,并实现分布式系统的选主装置在图4所示实施例的功能,本申请实施例在此不再赘述。
总之,以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

Claims (12)

1.一种分布式系统的选主方法,其特征在于,包括:
在分布式系统启动时,基于预先得到的配置文件,确定所述分布式系统中包括的多个节点,所述配置文件中包括所述多个节点的标识信息;
若所述多个节点中不包括主节点,则所述多个节点发起选主请求,其中,一个节点在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则所述多个节点进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
当存在结束休眠状态的节点时,所述结束休眠状态的节点再次发起选主请求,其中,处于休眠状态的节点将自身的票数投给结束休眠状态的一个节点;
在选主结束后,若所述多个节点中存在所述目标节点,则选举所述目标节点为主节点。
2.如权利要求1所述的方法,其特征在于,
所述多个节点对应多个任期值;
其中,所述多个节点在发起选主请求时,所述方法还包括:
所述多个节点通过协商的方式统一任期值,其中,统一后的任期值为所述多个节点对应的多个任期值中的最大值。
3.如权利要求1所述的方法,其特征在于,若所述多个节点中不存在目标节点,则所述方法还包括:
所述多个节点将自身的任期值加一。
4.如权利要求1所述的方法,其特征在于,当存在结束休眠状态的节点时,所述结束休眠状态的节点再次发起选主请求,包括:
若第一节点结束休眠状态,其他节点仍处于休眠状态,则所述第一节点发起选主请求,其中,所述第一节点获得自身的票数,其他节点将自身的票数投给所述第一节点;
若第二节点和第三节点结束休眠状态,其他节点仍处于休眠状态,则所述第二节点和所述第三节点发起选主请求,其中,所述第二节点和所述第三节点各自获得自身的票数,其他节点若先接收到来自所述第二节点的选主请求,则将自身的票数投给所述第二节点,否则投给所述第三节点。
5.如权利要求1所述的方法,其特征在于,在选举所述目标节点为主节点后,所述方法还包括:
所述主节点向其他节点发送通知信息,所述通知信息中包括所述主节点的标识信息,所述通知信息用于通知所述其他节点与所述标识信息对应的节点选举为主节点。
6.如权利要求5所述的方法,其特征在于,所述主节点向其他节点发送通知信息后,所述方法还包括;
所述主节点以预设频率向其他节点广播自身的存活信息,并更新任期值,其中,若其他节点在预设时长内没有接收到所述存活信息,则所述多个节点发起选主请求。
7.如权利要求1所述的方法,其特征在于,在选举所述目标节点为主节点后,所述方法还包括:
若所述主节点接收到写入请求,则所述主节点基于所述写入请求更新本地数据,并将更新后的数据强制同步至其他节点;
若其他节点中的一个跟随节点接收到所述写入请求,则所述跟随节点将所述写入请求转发至所述主节点,所述主节点基于所述写入请求更新本地数据,并将更新后的数据强制同步至其他节点。
8.一种分布式系统,其特征在于,所述分布式系统包括多个节点,所述多个节点在所述分布式系统启动时,基于预先得到的配置文件确定得到,所述配置文件中包括所述多个节点的标识信息,其中:
若所述多个节点中不包括主节点,则所述多个节点发起选主请求,其中,一个节点在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则所述多个节点进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
当存在结束休眠状态的节点时,所述结束休眠状态的节点再次发起选主请求,其中,处于休眠状态的节点将自身的票数投给结束休眠状态的一个节点;
在选主结束后,若所述多个节点中存在所述目标节点,则选举所述目标节点为主节点。
9.一种分布式系统的选主方法,其特征在于,所述方法应用于分布式系统中的一个节点,所述节点与所述分布式系统中的其他节点在所述分布式系统启动时,基于预先得到的配置文件确定得到,所述配置文件中包括所述分布式时系统中的多个节点的标识信息,所述方法包括:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
10.一种分布式系统的选主装置,其特征在于,所述装置应用于分布式系统中的一个节点,所述节点与所述分布式系统中的其他节点在所述分布式系统启动时,基于预先得到的配置文件确定得到,所述配置文件中包括所述分布式时系统中的多个节点的标识信息,所述装置包括:
选主单元,在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
休眠单元,在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
所述选主单元,若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
确定单元,在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
11.一种电子设备,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行以下操作:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
12.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行以下操作:
在确定所述多个节点中不包括主节点时,发起选主请求,其中,在发起选主请求时,获得自身的票数并拒绝其他节点的选主请求;
在选主结束后,若所述多个节点中不存在目标节点,则进入休眠状态,其中,所述目标节点获得的票数大于所述多个节点的数量的一半;
若结束休眠状态时其他节点仍处于休眠状态,则再次发起选主请求;若在结束休眠状态之前,接收到来自其他节点的选主请求,则将自身的票数投给其他节点;
在选主结束后,若自身的票数大于所述多个节点的数量的一半,则选举为主节点;否则,若其他节点中存在所述目标节点,则选举所述目标节点作为主节点。
CN201910875233.9A 2019-09-17 2019-09-17 一种分布式系统的选主方法、装置和分布式系统 Pending CN110674215A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910875233.9A CN110674215A (zh) 2019-09-17 2019-09-17 一种分布式系统的选主方法、装置和分布式系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910875233.9A CN110674215A (zh) 2019-09-17 2019-09-17 一种分布式系统的选主方法、装置和分布式系统

Publications (1)

Publication Number Publication Date
CN110674215A true CN110674215A (zh) 2020-01-10

Family

ID=69078037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910875233.9A Pending CN110674215A (zh) 2019-09-17 2019-09-17 一种分布式系统的选主方法、装置和分布式系统

Country Status (1)

Country Link
CN (1) CN110674215A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014634A (zh) * 2021-02-20 2021-06-22 成都新希望金融信息有限公司 集群选举处理方法、装置、设备及存储介质
CN115412419A (zh) * 2022-08-29 2022-11-29 福建乐摩物联科技有限公司 一种自组网主节点选举及数据同步方法
CN115811520A (zh) * 2023-02-08 2023-03-17 天翼云科技有限公司 分布式系统中主节点的选举方法、装置和电子设备
CN118151864A (zh) * 2024-05-08 2024-06-07 宁波菊风系统软件有限公司 分布式系统的选主方法、设备、程序产品及分布式系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010045530A1 (en) * 2008-10-16 2010-04-22 Synapse Wireless, Inc. Systems and methods for reducing power consumption in communication networks
US20170032007A1 (en) * 2015-07-02 2017-02-02 Mongodb, Inc. System and method for augmenting consensus election in a distributed database
CN106559263A (zh) * 2016-11-17 2017-04-05 杭州沃趣科技股份有限公司 一种改进的分布式一致性算法
CN107295080A (zh) * 2017-06-19 2017-10-24 北京百度网讯科技有限公司 应用于分布式服务器集群的数据存储方法和服务器

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010045530A1 (en) * 2008-10-16 2010-04-22 Synapse Wireless, Inc. Systems and methods for reducing power consumption in communication networks
US20100098102A1 (en) * 2008-10-16 2010-04-22 Kevin Banks Systems and methods for reducing power consumption in communication networks
US20170032007A1 (en) * 2015-07-02 2017-02-02 Mongodb, Inc. System and method for augmenting consensus election in a distributed database
CN106559263A (zh) * 2016-11-17 2017-04-05 杭州沃趣科技股份有限公司 一种改进的分布式一致性算法
CN107295080A (zh) * 2017-06-19 2017-10-24 北京百度网讯科技有限公司 应用于分布式服务器集群的数据存储方法和服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
狄俊安: "《互联网+视角下的产业发展与高等教育融合》", 30 November 2016, 厦门大学出版社 *

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113014634A (zh) * 2021-02-20 2021-06-22 成都新希望金融信息有限公司 集群选举处理方法、装置、设备及存储介质
CN115412419A (zh) * 2022-08-29 2022-11-29 福建乐摩物联科技有限公司 一种自组网主节点选举及数据同步方法
CN115412419B (zh) * 2022-08-29 2024-05-14 福建乐摩物联科技有限公司 一种自组网主节点选举及数据同步方法
CN115811520A (zh) * 2023-02-08 2023-03-17 天翼云科技有限公司 分布式系统中主节点的选举方法、装置和电子设备
CN115811520B (zh) * 2023-02-08 2023-04-07 天翼云科技有限公司 分布式系统中主节点的选举方法、装置和电子设备
CN118151864A (zh) * 2024-05-08 2024-06-07 宁波菊风系统软件有限公司 分布式系统的选主方法、设备、程序产品及分布式系统

Similar Documents

Publication Publication Date Title
CN110674215A (zh) 一种分布式系统的选主方法、装置和分布式系统
CN108648078B (zh) 一种交易预处理方法、装置及电子设备
CN107450981B (zh) 一种区块链共识方法及设备
CN109639636B (zh) 业务数据转发、业务数据处理方法、装置及电子设备
CN110018884B (zh) 分布式事务处理方法、协调装置、数据库及电子设备
CN110708163B (zh) 一种区块链的共识方法、装置、系统和电子设备
CN105468718B (zh) 数据一致性处理方法、装置和系统
CN110196843B (zh) 一种基于容器集群的文件分发方法及容器集群
CN110134503B (zh) 一种集群环境下的定时任务处理方法、装置及存储介质
CN115002143B (zh) 一种节点选举的方法、装置、存储介质及电子设备
CN111880956A (zh) 一种数据同步方法和装置
US20230281061A1 (en) Multi-phase distributed task coordination
CN107025257B (zh) 一种事务处理方法及装置
CN113806143B (zh) 一种异地容灾方法、系统和电子设备
CN111274205B (zh) 数据块访问方法及装置、存储介质
CN113966603B (zh) 用于共享服务端的方法、客户端和云平台
US9789763B1 (en) Systems and methods for infotainment system startup
CN111355765B (zh) 一种网络请求的处理、发送方法及装置
CN114884962A (zh) 负载均衡方法及装置和电子设备
CN109076126B (zh) 权限更新方法和终端设备
CN114640657A (zh) 多注册中心的融合方法、装置
CN110837499A (zh) 数据访问处理方法、装置、电子设备和存储介质
CN111050217B (zh) 一种视频播放方法及装置
US10761724B2 (en) System, method, and apparatus for updating data in a distributed storage system
US10567549B2 (en) Distributed database transaction processing method, device based on GPS atomic clock server

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20200110