CN114866554B - 一种免选举分布式协议的方法、装置、设备及存储介质 - Google Patents

一种免选举分布式协议的方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114866554B
CN114866554B CN202210554472.6A CN202210554472A CN114866554B CN 114866554 B CN114866554 B CN 114866554B CN 202210554472 A CN202210554472 A CN 202210554472A CN 114866554 B CN114866554 B CN 114866554B
Authority
CN
China
Prior art keywords
server
voting
servers
value
voting value
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
Application number
CN202210554472.6A
Other languages
English (en)
Other versions
CN114866554A (zh
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.)
Dongfeng Commercial Vehicle Co Ltd
Original Assignee
Dongfeng Commercial Vehicle 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 Dongfeng Commercial Vehicle Co Ltd filed Critical Dongfeng Commercial Vehicle Co Ltd
Priority to CN202210554472.6A priority Critical patent/CN114866554B/zh
Publication of CN114866554A publication Critical patent/CN114866554A/zh
Application granted granted Critical
Publication of CN114866554B publication Critical patent/CN114866554B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种免选举分布式协议的方法、装置、设备及存储介质,其中方法包括:确定服务器集群中每一台服务器的可靠性程度;根据可靠性程度设置所有服务器的投票值步长;每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;将发出最大投票值的服务器作为leader服务器。本申请通过免选举服务器的方式,在服务器集群开始运行时或者leader服务器宕机后,不需要重新选举leader服务器,以提高系统的运行效率,并且减少多个leader服务器因竞争冲突带来的活锁问题。

Description

一种免选举分布式协议的方法、装置、设备及存储介质
技术领域
本发明涉及服务器分布式管理技术领域,尤其涉及一种免选举分布式协议的方法、装置、设备及存储介质。
背景技术
服务器集群中,每台服务器有不同的角色,有些特定服务器一台或多台负责发起整个集群中的“提案”,有些服务器只接受和响应“提案”。这些负责主动发起的服务器被称为leader,不同于被动接受和响应的服务器。现有所有实用的协议需要初始“选举”leader服务器,在leader服务器宕机或者掉线后,还需要重新选举leader服务器,因此,在重新选举leader服务器时会造系统效率降低,并且在多个leader服务器竞争冲突时造成活锁问题。
发明内容
本发明主要目的在于提供一种免选举分布式协议的方法、装置、设备及存储介质,通过免选举服务器的方式,在服务器集群开始运行时或者leader服务器宕机后,不需要重新选举leader服务器,以提高系统的运行效率,并且减少多个leader服务器因竞争冲突带来的活锁问题。
第一方面,本申请提供了一种免选举分布式协议的方法,该免选举分布式协议的方法包括步骤:
确定服务器集群中每一台服务器的可靠性程度;
根据可靠性程度设置所有服务器的投票值步长;
每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;
将发出最大投票值的服务器作为leader服务器。
一种可能的实施方式中,每一台服务器向其余服务器发送以初始值为起点的投票信息;
当任一服务器接收到其他服务器的投票信息后,保存最大投票值对应的投票信息,并拒绝所有小于等于最大投票值的服务器的投票信息;
当发起投票的服务器,被任一台服务器拒绝,则重发自己的投票信息,并增加一个自身的投票值步长,直到挑选出最大投票值的服务器后停止投票。
一种可能的实施方式中,所述初始值为1。
一种可能的实施方式中,按照服务器可靠性程度由高到低的顺序依次递减服务器的投票值步长。
一种可能的实施方式中,根据每台服务器的规格配制、使用年限、网络配置、过往宕机断联记录,确定服务器的可靠性程度。
一种可能的实施方式中,当所述服务器离开或加入集群时,保持每台服务器的投票值步长不变。
一种可能的实施方式中,当一台服务器的投票值超过可表达极限后,将所有投票值重新置为初值。
第二方面,本申请提供了一种免选举分布式协议的装置,该免选举分布式协议的装置包括:
确定模块,用于确定服务器集群中每一台服务器的可靠性程度;
设置模块,用于根据可靠性程度设置所有服务器的投票值步长;
发送模块,用于每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;
处理模块,用于将发出最大投票值的服务器作为leader服务器。
第三方面,本申请还提供了一种电子设备,所述电子设备包括:处理器;存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现第一方面任一项所述的方法。
第四方面,本申请还提供了一种计算机可读程序介质,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行第一方面任一项所述的方法。
本申请提供的一种免选举分布式协议的方法、装置、设备及存储介质,确定服务器集群中每一台服务器的可靠性程度;根据可靠性程度设置所有服务器的投票值步长;每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;将发出最大投票值的服务器作为leader服务器,通过免选举服务器的方式,在服务器集群开始运行时或者leader服务器宕机后,不需要重新选举leader服务器,以提高系统的运行效率,并且减少多个leader服务器因竞争冲突带来的活锁问题。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本发明。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并于说明书一起用于解释本发明的原理。
图1为本实施例中提供的一种免选举分布式协议的方法步骤S101的流程图;
图2为本实施例中提供的一种免选举分布式协议的装置示意图;
图3为本实施例中提供的一种免选举分布式协议的方法步骤S1031的流程图;
图4为本申请实施例中提供的的电子设备示意图;
图5为本申请实施例中提供的计算机可读程序介质示意图。
具体实施方式
这里将详细地对示例性实施例执行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
此外,附图仅为本公开的示意性图解,并非一定是按比例绘制。附图所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。
参照图1,图1所示为本发明提供的一种免选举分布式协议的方法步骤S101的流程图,如图1所示,一种免选举分布式协议的方法步骤S101的流程图包括:
步骤S101:确定服务器集群中每一台服务器的可靠性程度。
具体而言,在服务器集群中,根据服务器本身的规格配置、服务器的使用年限,服务器的网络配置、服务器过往宕机断联记录等,对服务器进行可靠性排序,其中可靠性越高的服务器优先作为潜在leader服务器,可选的,可靠性越高的服务器其ballot number的步长越大,即投票值的步长就越大,可知,服务器的步长随着服务器的可靠性降低而递减。
一实施例中,确定服务器集群的规模,设置服务器总数量为N,其中N为正整数,并默认任何一台服务器都有发起投票的权利,根据服务器本身的规格配置、服务器的使用年限,服务器的网络配置、服务器过往宕机断联记录等,对每台服务器按照已知的可靠性排序,其中可靠性最高的服务器排在最前面,可选的,如果不知道每台服务器的可靠性,则对不知道可靠性的服务器任意排序。
另一实施例中,车辆在道路上,临时聚集到通信范围内的车辆,形成临时的无线集群,假设将每辆车就是一台服务器,此时随机对服务器进行可可靠性排序,其中可靠性时根据服务器本身的规格配置、服务器的使用年限,服务器的网络配置、服务器过往宕机断联记录等,对每台服务器按照已知的可靠性排序,可选的,可靠性越高的服务器优先作为潜在leader,其ballot number的步长越大,即投票值的步长就越大,其中服务器的步长随着可靠性降低而递减,随着可靠性的上升而增加。
步骤S102:根据可靠性程度设置所有服务器的投票值步长。
具体而言,当已知每台服务器的可靠性时,可根据服务器的可靠性设置服务器的ballot number stepsize,即服务器的投票值步长,服务器投票值步长从高到低进行排序,并使每台服务器呈现出大小包容的关系。
可选的,有三台服务器的集群,其中步长最大的服务器是可靠性最高的服务器,步长最小的服务器是可靠性最差的服务器。
一实施例中,根据服务器的可靠性程度,将可靠性第一位的服务器,即默认可靠性最高的服务器的步长设置为N,将可靠性第二的服务器,即默认可靠性第二的服务器的步长设置为N-1,将可靠性第三的服务器,即默认可靠性第三的服务器的步长设置为N-2,将可靠性第四的服务器,即默认可靠性第四的服务器的步长设置为N-3,将可靠性第五的服务器,即默认可靠性第五的服务器的步长设置为N-4,将可靠性第六的服务器,即默认可靠性第六的服务器的步长设置为N-5,将可靠性第七的服务器,即默认可靠性第七的服务器的步长设置为N-6,其中N取正整数,按照上述可靠性排序,直至最后一台的服务器步长为1为止。
步骤S103:每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值。
具体而言,服务器集群中,每台服务器有不同的角色,有些特定服务器一台或多台负责发起整个集群中的提案,有些服务器只接受和响应提案。而负责主动发起的服务器即leader服务器,其中leader服务器不同于被动接受和响应的服务器。
每一台服务器都可以基于本身投票值步长向服务器集群中的其余服务器发起投票,可以理解为,任何一台服务器都可以发起ballot也就是向其他服务器发送带有ballotnumber的message,即投票值的投票信息,同时也可以接收和响应其他服务器的ballot信息,当任何服务器接收到ballot后,会保存其中最大的ballot number,并且在以后会拒绝掉任何小于等于该ballot number的ballot,并返回一个拒绝信息。
可选的,当发起投票的服务器,被任一台服务器拒绝,则发起投票的服务器会重新发送自己的ballot,并且把里面附带带的ballot number增加一个本身的步长,直到挑选出最大投票的服务器后停止投票,并将最大投票值的服务器作为可靠性最高的服务器,即潜在leader服务器。
一实施例中,当一台服务器的投票值超过可表达极限后,将所有投票值重新置为初值。
具体而言,当服务器集群中的某一台服务器X的ballot number超过可以表达的极限,例如java的BigInteger可以表达3.4x1038以下的任何整数后,需要把所有balloutnumber重新置为初值。服务器X将向所有其他服务器发送信息提示重置,并重置自己的ballout number为初始值,所有在线的服务器接收到后,重置自己的ballout number为初始值;所有掉线或者宕机的服务器,无法接收到这一信息,在重连或者重启后,自动重置自己的ballout number为初始值。如此可以保证所有服务器都会重置自己的ballout number为初始值。
一实施例中,当所述服务器离开或加入集群时,保持每台服务器的投票值步长不变。
具体而言,道路上,临时聚集到通信范围内的车辆,形成临时无线集群,每辆车就是一台服务器。此时随机对服务器进行可靠性排序。可靠性越高的服务器优先作为潜在leader,其ballot number的步长越大;步长随着可靠性降低而递减。
这种场景下,初始时不需要集群选举一个或者多个leader,某些车辆开出或加入集群时,不需要重新选举leader。
当车辆离开当前集群,相当于断联,车辆加入集群,如果没有超过原有集群的数量,可以把离开车辆的步长设置分配给新来车辆。如果超过,可以向上分配,给新来车辆分配更大的步长配置。始终保持每台服务器的ballot number stepsize,即服务器投票值的步长,按服务器可靠性从高到低排序,使得呈现出从大到小的包容关系。
步骤S104:将发出最大投票值的服务器作为leader服务器。
具体而言,每一台服务器都可以基于本身投票值步长向服务器集群中的其余服务器发起投票,即任何一台服务器都可以发起ballot也就是向其他服务器发送带有ballotnumber的message,即投票值的投票信息,同时也可以接收和响应其他服务器的ballot信息,当任何服务器接收到ballot后,会保存其中最大的ballot number,并且在以后会拒绝掉任何小于等于该ballot number的ballot,并返回一个拒绝信息,当发起投票的服务器,被任一台服务器拒绝,则发起投票的服务器会重新发送自己的ballot,并且把里面附带带的ballot number增加一个本身的步长,直到挑选出最大投票的服务器后停止投票,并将最大投票值的服务器作为可靠性最高的服务器,即潜在leader服务器。
一实施例中,预设步长越大的服务器,其发起的ballot的ballot number增长比步长短的服务器快,被拒绝的几率微乎其微只有它连续遭遇网络延迟,才使得它的ballotnumber落后。因此步长越大的服务器默认选择可靠性越好的服务器,优先扮演了潜在leader的角色。不需要在集群开始运行时,显式选举初始的一台或多台leader或者mas ter服务器。
另一实施例中,任何一台服务器宕机或者断联推出集群,其余服务器仍然保持每台服务器的ballot number stepsize按服务器可靠性从高到低,呈现出从大到小的包容关系,剩余的步长大的服务器仍然优先扮演了潜在leader的角色,因此不需要显式重新选举。以此实现免选举,从而提高系统的运行效率。
本申请实施例的免选举分布式协议的方法,确定服务器集群中每一台服务器的可靠性程度;根据可靠性程度设置所有服务器的投票值步长;每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;将发出最大投票值的服务器作为leader服务器,通过免选举服务器的方式,在服务器集群开始运行时或者leader服务器宕机后,不需要重新选举leader服务器,以提高系统的运行效率,并且减少多个leader服务器因竞争冲突带来的活锁问题。
参照图2,图2所示为本发明提供的一种免选举分布式协议的装置示意图,如图2所示,免选举分布式协议的装置包括:
确定模块201,用于确定服务器集群中每一台服务器的可靠性程度;
设置模块202,用于根据可靠性程度设置所有服务器的投票值步长;
发送模块203,用于每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;
处理模块204,用于将发出最大投票值的服务器作为leader服务器。
一实施例中,进一步地,发送模块203还用于,每一台服务器向其余服务器发送以初始值为起点的投票信息;
当任一服务器接收到其他服务器的投票信息后,保存最大投票值对应的投票信息,并拒绝所有小于等于最大投票值的服务器的投票信息;
当发起投票的服务器,被任一台服务器拒绝,则重发自己的投票信息,并增加一个自身的投票值步长,直到挑选出最大投票值的服务器后停止投票。
一实施例中,进一步地,设置模块202还用于,按照服务器可靠性程度由高到低的顺序依次递减服务器的投票值步长。
一实施例中,进一步地,确定模块201还用于,根据每台服务器的规格配制、使用年限、网络配置、过往宕机断联记录,确定服务器的可靠性程度。
参照图3,图3所示为本发明提供的一种免选举分布式协议的方法步骤S1031的流程图,如图3所示,一种免选举分布式协议的方法步骤S1031的流程图包括:
S1031:每一台服务器向其余服务器发送以初始值为起点的投票信息。
具体而言,每一台服务器向其余服务器发送以初始值为1的起点的投票信息。可以理解的是,每台服务器的ballot number都设置为固定值作为起点,即每台服务器的投票值起点都相同。
可选的,每台服务器的每次ballot number的步长按如下规则设置:每台服务器的ballot number stepsize按服务器的可靠性从高到低呈现出从大到小的包容关系。
S1032:当任一服务器接收到其他服务器的投票信息后,保存最大投票值对应的投票信息,并拒绝所有小于等于最大投票值的服务器的投票信息。
具体而言,任何一台服务器接收到其他服务器的投票信息后,会保存其中最大的ballot number,即投票值,并在以后投票中拒绝所有小于等于最大的ballot number的ballot,并更新本身记录的最大的ballot number,响应最大的ballot number的ballot。
S1033:当发起投票的服务器,被任一台服务器拒绝,则重发自己的投票信息,并增加一个自身的投票值步长,直到挑选出最大投票值的服务器后停止投票。
具体而言,对于发起ballot的服务器,如果发现自己的ballot被任何一台服务器拒绝接收到拒绝信息或者没有接收到任何响应信息,则重发自己的ballot,并且把里面附带的ballot number增加一个本身的步长,直到挑选出最大的ballot number的服务器为止。
预设步长越大的服务器,其发起的ballot的ballot number增长比步长短的服务器快,被拒绝的几率微乎其微只有它连续遭遇网络延迟,才使得它的ballot number落后。因此步长越大的服务器默认选择可靠性越好的服务器,优先扮演了潜在leader的角色。不需要在集群开始运行时,显式选举初始的一台或多台leader或者master服务器。
下面参照图4来描述根据本发明的这种实施方式的电子设备400。图4显示的电子设备400仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图4所示,电子设备400以通用计算设备的形式表现。电子设备400的组件可以包括但不限于:上述至少一个处理单元410、上述至少一个存储单元420、连接不同系统组件(包括存储单元420和处理单元410)的总线430。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元410执行,使得所述处理单元410执行本说明书上述“实施例方法”部分中描述的根据本发明各种示例性实施方式的步骤。
存储单元420可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)421和/或高速缓存存储单元422,还可以进一步包括只读存储单元(ROM)423。
存储单元420还可以包括具有一组(至少一个)程序模块425的程序/实用工具424,这样的程序模块425包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线430可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备400也可以与一个或多个外部设备500(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备400交互的设备通信,和/或与使得该电子设备400能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口450进行。并且,电子设备400还可以通过网络适配器460与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器460通过总线430与电子设备400的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备400使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、终端装置、或者网络设备等)执行根据本公开实施方式的方法。
根据本公开的方案,还提供了一种计算机可读存储介质,其上存储有能够实现本说明书上述方法的程序产品。在一些可能的实施方式中,本发明的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行本说明书上述“示例性方法”部分中描述的根据本发明各种示例性实施方式的步骤。
参考图5所示,描述了根据本发明的实施方式的用于实现上述方法的程序产品500,其可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在终端设备,例如个人电脑上运行。然而,本发明的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
所述程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
此外,上述附图仅是根据本发明示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
综上所述,本申请提供的一种免选举分布式协议的方法、装置、设备及存储介质,确定服务器集群中每一台服务器的可靠性程度;根据可靠性程度设置所有服务器的投票值步长;每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;将发出最大投票值的服务器作为leader服务器,通过免选举服务器的方式,在服务器集群开始运行时或者leader服务器宕机后,不需要重新选举leader服务器,以提高系统的运行效率,并且减少多个leader服务器因竞争冲突带来的活锁问题。
以上所述的仅是本申请的实施例,方案中公知的具体结构及特性等常识在此未作过多描述,所属领域普通技术人员知晓申请日或者优先权日之前发明所属技术领域所有的普通技术知识,能够获知该领域中所有的现有技术,并且具有应用该日期之前常规实验手段的能力,所属领域普通技术人员可以在本申请给出的启示下,结合自身能力完善并实施本方案,一些典型的公知结构或者公知方法不应当成为所属领域普通技术人员实施本申请的障碍。应当指出,对于本领域的技术人员来说,在不脱离本发明结构的前提下,还可以作出若干变形和改进,这些也应该视为本发明的保护范围,这些都不会影响本发明实施的效果和专利的实用性。本申请要求的保护范围应当以其权利要求的内容为准,说明书中的具体实施方式等记载可以用于解释权利要求的内容。

Claims (9)

1.一种免选举分布式协议的方法,其特征在于,包括:
确定服务器集群中每一台服务器的可靠性程度;
根据可靠性程度设置所有服务器的投票值步长;
每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;
将发出最大投票值的服务器作为leader服务器;
其中,每一台服务器向其余服务器发送以初始值为起点的投票信息;
当任一服务器接收到其他服务器的投票信息后,保存最大投票值对应的投票信息,并拒绝所有小于等于最大投票值的服务器的投票信息;
当发起投票的服务器,被任一台服务器拒绝,则重发自己的投票信息,并增加一个自身的投票值步长,直到挑选出最大投票值的服务器后停止投票。
2.根据权利要求1所述的方法,其特征在于:
所述初始值为1。
3.根据权利要求1所述的方法,其特征在于,所述根据可靠性程度设置所有服务器的投票值步长,包括:
按照服务器可靠性程度由高到低的顺序依次递减服务器的投票值步长。
4.根据权利要求1所述的方法,其特征在于,所述确定服务器集群中每一台服务器的可靠性程度,包括:
根据每台服务器的规格配制、使用年限、网络配置、过往宕机断联记录,确定服务器的可靠性程度。
5.根据权利要求1所述的方法,其特征在于:
当所述服务器离开或加入集群时,保持每台服务器的投票值步长不变。
6.根据权利要求1所述的方法,其特征在于:
当一台服务器的投票值超过可表达极限后,将所有投票值重新置为初值。
7.一种免选举分布式协议的装置,其特征在于,包括:
确定模块,用于确定服务器集群中每一台服务器的可靠性程度;
设置模块,用于根据可靠性程度设置所有服务器的投票值步长;
发送模块,用于每一台服务器基于自身投票值步长向服务器集群中的其余服务器发送包含投票值的投票信息,当挑选出最大投票值的服务器后停止投票,并存储收到的最大投票值;
处理模块,用于将发出最大投票值的服务器作为leader服务器;
其中,发送模块,还用于每一台服务器向其余服务器发送以初始值为起点的投票信息;
当任一服务器接收到其他服务器的投票信息后,保存最大投票值对应的投票信息,并拒绝所有小于等于最大投票值的服务器的投票信息;
当发起投票的服务器,被任一台服务器拒绝,则重发自己的投票信息,并增加一个自身的投票值步长,直到挑选出最大投票值的服务器后停止投票。
8.一种电子设备,其特征在于,所述电子设备,包括:
处理器;
存储器,所述存储器上存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,实现如权利要求1至6任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,其存储有计算机程序指令,当所述计算机程序指令被计算机执行时,使计算机执行根据权利要求1至6中任一项所述的方法。
CN202210554472.6A 2022-05-20 2022-05-20 一种免选举分布式协议的方法、装置、设备及存储介质 Active CN114866554B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210554472.6A CN114866554B (zh) 2022-05-20 2022-05-20 一种免选举分布式协议的方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210554472.6A CN114866554B (zh) 2022-05-20 2022-05-20 一种免选举分布式协议的方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN114866554A CN114866554A (zh) 2022-08-05
CN114866554B true CN114866554B (zh) 2023-07-07

Family

ID=82638905

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210554472.6A Active CN114866554B (zh) 2022-05-20 2022-05-20 一种免选举分布式协议的方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114866554B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182635A (zh) * 2017-12-18 2018-06-19 深圳前海微众银行股份有限公司 区块链共识方法、系统和计算机可读存储介质
CN112799867A (zh) * 2021-02-03 2021-05-14 柏科数据技术(深圳)股份有限公司 一种基于分布式存储系统的选举方法及分布式存储系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106155780B (zh) * 2015-04-02 2020-01-31 阿里巴巴集团控股有限公司 一种基于时间的节点选举方法及装置
CN106789197A (zh) * 2016-12-07 2017-05-31 高新兴科技集团股份有限公司 一种集群选举方法及系统
CN108810046A (zh) * 2017-04-28 2018-11-13 华为技术有限公司 一种选举领导者Leader的方法、装置及设备
US10810093B1 (en) * 2018-02-07 2020-10-20 Amazon Technologies, Inc. Initializing node reliability for leadership election
CN113518116B (zh) * 2021-05-18 2022-04-01 广州泳泳信息科技有限公司 基于Fast Paxos算法的领导服务器选举方法和装置
CN114363154A (zh) * 2021-12-29 2022-04-15 中国电信股份有限公司 节点选举方法、装置、电子设备及存储介质
CN114189421B (zh) * 2022-02-17 2022-05-31 江西农业大学 一种领导者节点选举方法、系统、存储介质及设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108182635A (zh) * 2017-12-18 2018-06-19 深圳前海微众银行股份有限公司 区块链共识方法、系统和计算机可读存储介质
CN112799867A (zh) * 2021-02-03 2021-05-14 柏科数据技术(深圳)股份有限公司 一种基于分布式存储系统的选举方法及分布式存储系统

Also Published As

Publication number Publication date
CN114866554A (zh) 2022-08-05

Similar Documents

Publication Publication Date Title
EP2822236A1 (en) Network bandwidth distribution method and terminal
CN109147788B (zh) 本地语音库的更新方法及装置
CN104243405A (zh) 一种请求处理方法、装置及系统
CN111224806A (zh) 一种资源分配方法及服务器
CN110445844A (zh) 短信多通道选择方法及装置、存储介质、电子设备
EP2712227A1 (en) Network traffic control method, node and system based on token-ring
CN106294188A (zh) 存储空间处理方法及装置
WO2021012795A1 (zh) 网络节点的调度方法、装置、电子设备和存储介质
CN103428260A (zh) 用于将终端分配到服务器并高效地提示终端的系统及方法
CN114866554B (zh) 一种免选举分布式协议的方法、装置、设备及存储介质
CN114091610A (zh) 智能决策方法及装置
CN117407159A (zh) 内存空间的管理方法及装置、设备、存储介质
CN107682283B (zh) 一种带宽管理系统及方法
US20130290245A1 (en) Database history management method and system thereof
CN112615916A (zh) 文件部署方法、装置、电子设备以及存储介质
CN114189567A (zh) 一种智能门禁系统管理方法、装置及电子设备
CN114697450A (zh) 一种用于确定外呼线路的方法、设备及介质
CN105812203A (zh) 一种请求消息处理方法及设备
CN112468317A (zh) 一种集群拓扑更新方法、系统、设备及计算机存储介质
CN112054926A (zh) 集群管理方法、装置、电子设备及存储介质
CN111831394A (zh) 采用kubernetes部署有状态pod的方法及装置
KR102301792B1 (ko) 지능형 컴포넌트를 통한 양방향 연속적 정보 전달 서비스 지원 방법
CN114449002B (zh) 一种基于渲染节点的分布式部署管理方法、装置、电子设备和存储介质
KR102566970B1 (ko) 매쉬형 네트워크 사물인터넷 서비스 시스템
CN117311999B (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