CN103491168A - 一种集群选举设计方法 - Google Patents
一种集群选举设计方法 Download PDFInfo
- Publication number
- CN103491168A CN103491168A CN201310436866.2A CN201310436866A CN103491168A CN 103491168 A CN103491168 A CN 103491168A CN 201310436866 A CN201310436866 A CN 201310436866A CN 103491168 A CN103491168 A CN 103491168A
- Authority
- CN
- China
- Prior art keywords
- election
- node1
- ack
- node
- leader
- 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
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种集群选举设计方法,在选举过程中,当其中一个节点processor发起一次选举时,其他所有的节点接收到选举请求后,判断本身a_id发起者p_id的大小,若a_id小于p_id,则由该节点重新发起一次选举;若a_id大于p_id,则回复ack,表示同意其为leader节点;当超过半数的节点回复ack,则该processor成为新的leader;若发起选举超过5秒,仍未有半数的节点回复ack,且没有新的leader产生,则该节点将重新发起一次选举,直至新的leader产生为止。本发明所提出基于集群节点间的选举算法,实现集群节点之间的leader选举,并在leader失效后,重新发起新的选举,保证了集群的高可用服务,提高了集群的持续工作能力。
Description
技术领域
本发明涉及计算机技术领域,具体涉及一种集群选举设计方法。
技术背景
集群技术是一种较新的技术,通过集群技术,可以在付出较低成本的情况下获得在性能、可靠性、灵活性方面的相对较高的收益。
就目前应用来说,集群技术主要分为两类:高可用性集群和高性能集群。高可用性集群的主要功能就是提供不间断的服务,有许多应用程序必须一天二十四小时地不停运转,如所有的web服务器、工业控制器、ATM、远程通讯转接器、医学与军事检测仪以及股票处理机等。对这些应用程序而言,暂时的停机都会导致数据的丢失和灾难性的后果。
高性能集群通过将多台机器连接起来同时处理复杂的计算问题。模拟星球附近的磁场、预测***的出现、定位石油资源的储藏地等情况都需要对大量的数据进行处理。传统的处理方法是使用超级计算机来完成计算工作,但是超级计算机的价格比较昂贵,而且可用性和扩展性不够强,因此集群成为了高性能计算领域瞩目的焦点。
无论是高可用性集群,还是高性能集群,都要求在任务运行过程中服务不中断,提供完整高可用服务,而在多个集群节点之间,需要一个leader节点来监控集群中各个节点的状态,并做实时调整。而选举方法就显得格外重要。
发明内容
本发明要解决的技术问题是:在多个集群节点之间,选举一个leader节点。
本发明所采用的技术方案为:一种集群选举设计方法,在选举过程中,每个节点都可以发起选举并回复其他节点的选举请求,当一个processor发起一次选举时,所有的节点则为该节点的acceptors(同时也可作为processor发起选举),当acceptors接收到processor发送的选举请求后,acceptors判断本身id(a_id)与processor的id(p_id)大小,若a_id小于p_id,则该acceptor则重新发起一次选举,若a_id大于p_id,则回复ack,表示同意processor为leader节点。若超过半数的acceptors回复ack,则该processor则成为新的leader。若发起选举超过5秒,仍未有半数的人回复ack,且没有新的leader产生,则该processor节点将重新发起一次选举,直至新的leader产生为止。
一种集群选举设计方法的实现步骤:
(1)node1(id为0)发起一个选举前,首先遍历自己的quorum数组,发现其存放的id,,确定对应的对应node2、node3……。
(2)node1向node2、node3……节点发起一个选举P,epoch设置为1。
(3)node2、node3……接收到node1发起的选举请求后,首先对比自身epoch与node1发来的epoch,若比其小,则继续比较id大小,发现node1的id比较小,说明node1的优先级比较高,则回复ack。若a_id小于p_id,则由该节点重新发起一次选举。
(4)node1接收到ack后,加上自身的ack,计算收到的ack数目,经过判断其值大于quorum长度的二分之一,将epoch加1(修改为2),连同获得选举消息(V)一起发给node2、node3……。node1成为新的leader,并完成此次选举。
(5)node2、node3……接收到node1发来的epoch和获胜消息,确认node1为新的leader,并结束此次选举。
注:Processors:提出选举请求,即选举的发起者。该角色每次只能发起一个选举请求。
Acceptors:请求的接受者,即接受processors提出的请求,并作回应。每次只能接受一个选举请求。
在选举过程中,每个节点可能会同时担任这两个角色。
id: 整形数,集群中每个节点的唯一识别符,不得重复,id越小其成为leader的概率越高。
epoch:整形数,发起每次选举的唯一标示,若epoch为奇数,则集群正在进行选举,若为偶数,则选举结束。小于自身epoch的选举为过期选举。
quorum:数组,存放节点id的有效列表,列表中的节点存在且处于运行状态。
本发明的有益效果为:本发明所提出基于集群节点间的选举算法,实现集群节点之间的leader选举,并在leader失效后,重新发起新的选举。保证了集群的高可用服务,提高了集群的持续工作能力。
附图说明
图1为一个3个节点的选举流程图。
具体实施方式
下面参照附图,对本发明的内容以一个3个节点的具体实例来描述实现这一设计方法的实现过程。
(1)node1(id为0)发起一个选举前,首先遍历自己的quorum数组,发现其存放的id为1和2,即对应node2和node3。
(2)node1向node2和node3两个节点发起一个选举P,epoch设置为1。
(3)node2和node3接收到node1发起的选举请求后,首先对比自身epoch与node1发来的epoch,若比其小,则继续比较id大小,发现node1的id比较小,说明node1的优先级比较高,则回复ack;若a_id小于p_id,则由该节点重新发起一次选举。。
(4)node1接收到ack后,加上自身的ack,计算收到的ack数目(为3),经过判断其值大于quorum长度的二分之一(1),将epoch加1(修改为2),连同获得选举消息(V)一起发给node2和node3。node1成为新的leader,并完成此次选举。
(5)node2和node3接收到node1发来的epoch和获胜消息,确认node1为新的leader,并结束此次选举。
Claims (2)
1.一种集群选举设计方法,其特征在于:在选举过程中,当其中一个节点作为processor发起一次选举时,其他所有的节点则为该节点的acceptors,当acceptors接收到processor发送的选举请求后,判断本身id—a_id,与processor的id—p_id的大小,若a_id小于p_id,则由该acceptor重新发起一次选举;若a_id大于p_id,则回复ack,表示同意processor为leader节点;当超过半数的acceptors回复ack,则该processor则成为新的leader;若发起选举超过5秒,仍未有半数的acceptors回复ack,且没有新的leader产生,则该processor节点将重新发起一次选举,直至新的leader产生为止。
2.根据权利要求1所述的一种集群选举设计方法,其特征在于:所述设计方法的实现步骤如下:
(1)node1(id为0)发起一个选举前,首先遍历自己的quorum数组,发现其存放的id,确定对应的对应node2、node3……;
(2)node1向node2、node3……节点发起一个选举P,epoch设置为1;
(3)node2、node3……接收到node1发起的选举请求后,首先对比自身epoch与node1发来的epoch,若比其小,则继续比较id大小,发现node1的id比较小,说明node1的优先级比较高,则回复ack;若node1的id比较大,则由该acceptor接收节点重新发起一次选举;
(4)node1接收到ack后,加上自身的ack,计算收到的ack数目,经过判断其值大于quorum长度的二分之一,将epoch加1,修改为2,连同获得选举消息V一起发给node2、node3……;node1成为新的leader,并完成此次选举;
(5)node2、node3……接收到node1发来的epoch和获胜消息,确认node1为新的leader,并结束此次选举。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310436866.2A CN103491168A (zh) | 2013-09-24 | 2013-09-24 | 一种集群选举设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310436866.2A CN103491168A (zh) | 2013-09-24 | 2013-09-24 | 一种集群选举设计方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103491168A true CN103491168A (zh) | 2014-01-01 |
Family
ID=49831121
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310436866.2A Pending CN103491168A (zh) | 2013-09-24 | 2013-09-24 | 一种集群选举设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103491168A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104767794A (zh) * | 2015-03-13 | 2015-07-08 | 青岛海信传媒网络技术有限公司 | 一种分布式***中的节点选举方法及节点 |
CN105337780A (zh) * | 2015-12-01 | 2016-02-17 | 迈普通信技术股份有限公司 | 一种服务器节点配置方法及物理节点 |
CN106161495A (zh) * | 2015-03-25 | 2016-11-23 | 中兴通讯股份有限公司 | 一种主节点选举方法、装置及存储*** |
CN106372165A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种基于totem协议的集群的leader选取方法及装置 |
CN106687934A (zh) * | 2014-09-26 | 2017-05-17 | 英特尔公司 | 基于证据替代存储节点 |
CN107332880A (zh) * | 2017-06-05 | 2017-11-07 | 深圳市酷开网络科技有限公司 | 信息推送的方法、装置及计算机可读存储介质 |
CN108600328A (zh) * | 2018-03-29 | 2018-09-28 | 新华三技术有限公司 | 一种集群选举方法和装置 |
CN108810046A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 一种选举领导者Leader的方法、装置及设备 |
CN109995835A (zh) * | 2017-12-29 | 2019-07-09 | 浙江宇视科技有限公司 | 主节点选举方法、装置和分布式存储*** |
CN111162942A (zh) * | 2019-12-27 | 2020-05-15 | 杭州涂鸦信息技术有限公司 | 一种集群选举方法及*** |
CN113641692A (zh) * | 2021-08-18 | 2021-11-12 | 福建天晴数码有限公司 | 一种实现分布式集群节点参选的方案及*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005071058A2 (en) * | 2004-01-27 | 2005-08-04 | Compugen Ltd. | Methods and systems for annotating biomolecular sequences |
CN101110732A (zh) * | 2007-07-27 | 2008-01-23 | 北京大学 | 无线网状网络的骨干节点相对定位方法 |
CN101610193A (zh) * | 2009-07-27 | 2009-12-23 | 武汉烽火网络有限责任公司 | 以太环网自动发现及生成环的方法 |
CN101702721A (zh) * | 2009-10-26 | 2010-05-05 | 北京航空航天大学 | 一种多集群***的可重组方法 |
-
2013
- 2013-09-24 CN CN201310436866.2A patent/CN103491168A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2005071058A2 (en) * | 2004-01-27 | 2005-08-04 | Compugen Ltd. | Methods and systems for annotating biomolecular sequences |
CN101110732A (zh) * | 2007-07-27 | 2008-01-23 | 北京大学 | 无线网状网络的骨干节点相对定位方法 |
CN101610193A (zh) * | 2009-07-27 | 2009-12-23 | 武汉烽火网络有限责任公司 | 以太环网自动发现及生成环的方法 |
CN101702721A (zh) * | 2009-10-26 | 2010-05-05 | 北京航空航天大学 | 一种多集群***的可重组方法 |
Non-Patent Citations (2)
Title |
---|
张凯: "KTRP路由协议中根的动态选举算法研究", 《优秀硕士学位论文库》 * |
杨波,廖建新,武家春: "集群流媒体代理中主控制器选举和热切换协议研究", 《高技术通讯》 * |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106687934A (zh) * | 2014-09-26 | 2017-05-17 | 英特尔公司 | 基于证据替代存储节点 |
CN104767794B (zh) * | 2015-03-13 | 2018-05-01 | 聚好看科技股份有限公司 | 一种分布式***中的节点选举方法及节点 |
CN104767794A (zh) * | 2015-03-13 | 2015-07-08 | 青岛海信传媒网络技术有限公司 | 一种分布式***中的节点选举方法及节点 |
CN106161495A (zh) * | 2015-03-25 | 2016-11-23 | 中兴通讯股份有限公司 | 一种主节点选举方法、装置及存储*** |
CN105337780A (zh) * | 2015-12-01 | 2016-02-17 | 迈普通信技术股份有限公司 | 一种服务器节点配置方法及物理节点 |
CN105337780B (zh) * | 2015-12-01 | 2018-09-18 | 迈普通信技术股份有限公司 | 一种服务器节点配置方法及物理节点 |
CN106372165A (zh) * | 2016-08-31 | 2017-02-01 | 天津南大通用数据技术股份有限公司 | 一种基于totem协议的集群的leader选取方法及装置 |
CN108810046A (zh) * | 2017-04-28 | 2018-11-13 | 华为技术有限公司 | 一种选举领导者Leader的方法、装置及设备 |
CN107332880A (zh) * | 2017-06-05 | 2017-11-07 | 深圳市酷开网络科技有限公司 | 信息推送的方法、装置及计算机可读存储介质 |
CN109995835A (zh) * | 2017-12-29 | 2019-07-09 | 浙江宇视科技有限公司 | 主节点选举方法、装置和分布式存储*** |
CN108600328A (zh) * | 2018-03-29 | 2018-09-28 | 新华三技术有限公司 | 一种集群选举方法和装置 |
CN111162942A (zh) * | 2019-12-27 | 2020-05-15 | 杭州涂鸦信息技术有限公司 | 一种集群选举方法及*** |
CN113641692A (zh) * | 2021-08-18 | 2021-11-12 | 福建天晴数码有限公司 | 一种实现分布式集群节点参选的方案及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103491168A (zh) | 一种集群选举设计方法 | |
Nawab et al. | Dpaxos: Managing data closer to users for low-latency and mobile applications | |
US11687555B2 (en) | Conditional master election in distributed databases | |
US8930316B2 (en) | System and method for providing partition persistent state consistency in a distributed data grid | |
KR101503202B1 (ko) | 데이터 동기화 | |
Loesing et al. | Stormy: an elastic and highly available streaming service in the cloud | |
US11442824B2 (en) | Locality based quorum eligibility | |
CN102523234B (zh) | 一种应用服务器集群实现方法及*** | |
EP3326065B1 (en) | Leaderless consistency protocol | |
US10826812B2 (en) | Multiple quorum witness | |
JP2012079242A (ja) | 複合イベント分散装置、複合イベント分散方法および複合イベント分散プログラム | |
US10862856B2 (en) | Distributed components in computing clusters | |
US10061621B1 (en) | Managing resources in a configurable computing environment | |
Duolikun et al. | An energy-efficient process migration approach to reducing electric energy consumption in a cluster of servers | |
CN108462737B (zh) | 基于批处理和流水线的分层数据一致性协议优化方法 | |
Jalili Marandi et al. | Ring Paxos: High-throughput atomic broadcast | |
WO2014171810A2 (en) | A system and method of fault tolerant for distributed applications in a virtualized environment | |
CA3085055C (en) | A data management system and method | |
Sun et al. | Adaptive trade‐off between consistency and performance in data replication | |
Msadek et al. | Trust-enhanced self-configuration for organic computing systems | |
Bottcher et al. | A failure tolerating atomic commit protocol for mobile environments | |
US10542127B2 (en) | Fault tolerant communication in a distributed system | |
Rotaru et al. | Reliable messaging to millions of users with migratorydata | |
Loureiro | Scalable and Robust Membership Solutions for Geo-Distributed Systems | |
Yang et al. | DZMQ: A decentralized distributed messaging system for realtime Web applications and services |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20140101 |
|
RJ01 | Rejection of invention patent application after publication |