CN113901047A - 一种基于内存数据库的简便集群主从选举方法 - Google Patents
一种基于内存数据库的简便集群主从选举方法 Download PDFInfo
- Publication number
- CN113901047A CN113901047A CN202111084967.9A CN202111084967A CN113901047A CN 113901047 A CN113901047 A CN 113901047A CN 202111084967 A CN202111084967 A CN 202111084967A CN 113901047 A CN113901047 A CN 113901047A
- Authority
- CN
- China
- Prior art keywords
- master
- election
- cluster
- node
- master information
- 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
- 238000000034 method Methods 0.000 title claims abstract description 67
- 230000008569 process Effects 0.000 claims abstract description 34
- 238000012795 verification Methods 0.000 claims abstract description 17
- 238000012423 maintenance Methods 0.000 claims description 5
- 238000011161 development Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2291—User-Defined Types; Storage management thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24552—Database cache management
Abstract
本发明公开一种基于内存数据库的简便集群主从选举方法,涉及集群节点管理技术领域;通过共享数据,集群节点检测Master信息,根据Master信息判断是否进入选举流程,若集群节点进入选举流程,则获取Master信息,确认Master节点失效且未有节点已参与选举,将所述集群节点作为Master节点写入Master信息以参与选举,并获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式。
Description
技术领域
本发明公开一种基于内存数据库的简便集群主从选举方法,涉及集群节点管理技术领域,具体地说是一种基于内存数据库的简便集群主从选举方法。
背景技术
当今服务器应用领域,对服务高可用、高性能方面提出了越来越高的要求,可选择集群方案提高服务器可靠性和性能。集群方案中在多台服务器上分别部署多个服务节点,利用请求分发、数据共享等技术组成服务器集群,共同处理服务业务,以提供高可用、高性能保障。集群中服务节点分为1主(Master)N从(Slave),根据业务请求类型,将只读请求分发到从节点,写请求分发到主节点。该方案可显著提高读性能,一定程度上提高写性能,但该方案存在主节点单点故障问题,为解决主节点单点故障问题,可以通过算法动态指定主节点,现有技术中一般应用ZooKeeper等框架来实现,但ZooKeeper框架维护成本,运维复杂,不利于快速确定主节点,而采取服务自身实现复杂的数据同步,进行主从管理等业务逻辑,其开发成本又太高。
发明内容
本发明针对现有技术中存在的问题,提供一种基于内存数据库的简便集群主从选举方法,克服了ZooKeeper等框架实现方案对外部框架及服务的依赖问题,以及现有自实现算法实现复杂等问题。
本发明提出的具体方案是:
一种基于内存数据库的简便集群主从选举方法,通过共享数据,集群节点检测Master信息,根据Master信息判断是否进入选举流程,
若集群节点进入选举流程,则获取Master信息,确认Master节点失效且未有节点已参与选举,将所述集群节点作为Master节点写入Master信息以参与选举,并获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式。
进一步,所述的一种基于内存数据库的简便集群主从选举方法中所述集群节点检测Master信息,根据Master信息判断是否进入选举流程,包括:
Slave模式的集群节点获取Master信息,检测Master信息是否超时失效,若Master信息超时失效或Master信息不存在,则所述的Slave模式的集群节点进入选举流程。
进一步,所述的一种基于内存数据库的简便集群主从选举方法中所述集群节点检测Master信息,根据Master信息判断是否进入选举流程,包括:
Master模式的集群节点获取Master信息,校验所述的Master模式的集群节点ID是否超时失效,若所述的Master模式的集群节点ID超时失效或与Master节点ID不一致或Master信息不存在,则所述的Master模式的集群节点切换回Slave模式,进入选举流程。
进一步,所述的一种基于内存数据库的简便集群主从选举方法中所述获取最新Master信息进行校验,校验成功则选举成功,包括:
通过共享数据,参与选举的且已写入Master信息的集群节点获取最新Master信息,通过最新Master信息校验Master节点ID是否与本集群节点ID一致,若不一致,则进入Slave模式,若一致,则校验成功,选举成功。
进一步,所述的一种基于内存数据库的简便集群主从选举方法中所述进入Master工作模式之后,包括:Master节点进入Master状态维护流程。
进一步,所述的一种基于内存数据库的简便集群主从选举方法中集群节点通过内存数据库共享数据。
一种基于内存数据库的简便集群主从选举系统,包括数据共享模块、判断分析模块、选举模块及校验模块,
集群节点通过共享数据,利用判断分析模块检测Master信息,根据Master信息判断是否进入选举流程,
集群节点若进入选举流程,则通过选举模块获取Master信息,确认Master节点失效且未有节点已参与选举,作为Master节点写入Master信息以参与选举,并通过校验模块获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式。
一种基于内存数据库的简便集群主从选举装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于内存数据库的简便集群主从选举方法。
本发明的有益之处是:
本发明提供一种基于内存数据库的简便集群主从选举方法,通过共享数据,集群节点检测Master信息,根据Master信息判断是否进入选举流程,若集群节点进入选举流程,则获取Master信息,确认Master节点失效且未有节点已参与选举,将所述集群节点作为Master节点写入Master信息以参与选举,并获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式;解决现有技术中动态主从集群方案高度外部依赖或高实现复杂度问题,实现低外部依赖、低开发成本、可靠性高、故障恢复迅速的主从选举方案。
附图说明
图1是节点抢占选举主节点流程示意图。
图2是节点间未出现选举竞争时流程示意图。
图3是节点间出现选举竞争时流程示意图。
具体实施方式
下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。
本发明提供一种基于内存数据库的简便集群主从选举方法,通过共享数据,集群节点检测Master信息,根据Master信息判断是否进入选举流程,
若集群节点进入选举流程,则获取Master信息,确认Master节点失效且未有节点已参与选举,将所述集群节点作为Master节点写入Master信息以参与选举,并获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式。
通过本发明方法,集群节点采用抢占式快速选举算法选举Master节点,采用定时更新有效期方式保持Master节点状态。通过本发明方法克服了ZooKeeper等框架实现方案对外部框架/服务的依赖问题,以及传统自实现算法实现复杂等问题。
具体应用中,在本发明发一些实施例中进行基于内存数据库的简便集群主从选举时,具体过程如下:
通过共享数据,集群节点检测Master信息,根据Master信息判断是否进入选举流程,其中Slave模式的集群节点获取Master信息,检测Master信息是否超时失效,若Master信息超时失效或Master信息不存在,则所述的Slave模式的集群节点进入选举流程;
Master模式的集群节点获取Master信息,校验所述的Master模式的集群节点ID是否超时失效,若所述的Master模式的集群节点ID超时失效或与Master节点ID不一致或Master信息不存在,则所述的Master模式的集群节点切换回Slave模式,进入选举流程;
进入选举流程,进行抢占式快速选举算法选举Master时:
步骤1:集群节点获取Master信息,确认Master失效且未有节点已参与选举,
步骤2:以本机节点作为Master节点写入Master信息以参与选举,
步骤3:暂停1s等待选举期结束,应对多节点同时参选情况,
步骤4:获取最新Master信息,进行校验,校验成功则选举成功,包括:
通过共享数据,参与选举的且已写入Master信息的集群节点获取最新Master信息,通过最新Master信息校验Master节点ID是否与本集群节点ID一致,若不一致,则进入Slave模式,若一致,则校验成功,选举成功;
选举成功后进入Master工作模式,Master节点进入Master状态维护流程:
步骤a:获取Master信息,校验Master节点ID,若Master节点ID与本地集群节点ID不一致,则切换到Slave工作模式,集群重新选举,
步骤b:更新Master信息,更新有效期,
步骤c:暂停5s,重新开始步骤a。
上述过程可以使用内存数据库在多个对等服务之间共享数据,省去了对等集群共享集群数据的复杂逻辑,结合Master选举和Master故障检测方法,快速实现服务集群功能,
并且Master选举速度快,在当前Master信息缺失或失效时,候选服务通过本方法,可在2s之内随机选举出新的Master。同时Master故障发现及时,Master定时更新集群Master信息,并以此作为心跳。当Master宕机,2~3个心跳周期之后Master信息超时失效,既判定为Master故障,重新进入Master选举流程。
在上述实施例的基础上,本发明的实施例可以兼容多种内存数据库,支持Redis、ETCD、MongoDB等主流内存数据库或NOSQL数据库。通过GET和PUT两个字符串基本操作,可以使集群共享数据,大的降低了对内存数据库专有特性的依赖,提高了兼容性,最大限度的利用现有设计中已存在的内存数据库,解决了服务程序同时依赖多种内存数据库的问题。
本发明还提供一种基于内存数据库的简便集群主从选举系统,包括数据共享模块、判断分析模块、选举模块及校验模块,
集群节点通过共享数据,利用判断分析模块检测Master信息,根据Master信息判断是否进入选举流程,
集群节点若进入选举流程,则通过选举模块获取Master信息,确认Master节点失效且未有节点已参与选举,作为Master节点写入Master信息以参与选举,并通过校验模块获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式。
上述系统内的各模块之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地,通过本发明系统,集群节点采用抢占式快速选举算法选举Master节点,采用定时更新有效期方式保持Master节点状态。利用本发明系统克服了ZooKeeper等框架实现方案对外部框架/服务的依赖问题,以及传统自实现算法实现复杂等问题。
以及本发明提供一种基于内存数据库的简便集群主从选举装置,包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行所述的一种基于内存数据库的简便集群主从选举方法。
上述装置内的处理器的信息交互、执行可读程序过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
同样地,通过本发明装置,集群节点采用抢占式快速选举算法选举Master节点,采用定时更新有效期方式保持Master节点状态。利用本发明装置克服了ZooKeeper等框架实现方案对外部框架/服务的依赖问题,以及传统自实现算法实现复杂等问题。
需要说明的是,上述较佳实施例中各流程和各系统结构中不是所有的步骤和模块都是必须的,可以根据实际的需要忽略某些步骤或模块。各步骤的执行顺序不是固定的,可以根据需要进行调整。上述各实施例中描述的系统结构可以是物理结构,也可以是逻辑结构,即,有些模块可能由同一物理实体实现,或者,有些模块可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。
Claims (8)
1.一种基于内存数据库的简便集群主从选举方法,其特征是通过共享数据,集群节点检测Master信息,根据Master信息判断是否进入选举流程,
若集群节点进入选举流程,则获取Master信息,确认Master节点失效且未有节点已参与选举,将所述集群节点作为Master节点写入Master信息以参与选举,并获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式。
2.根据权利要求1所述的一种基于内存数据库的简便集群主从选举方法,其特征是所述集群节点检测Master信息,根据Master信息判断是否进入选举流程,包括:
Slave模式的集群节点获取Master信息,检测Master信息是否超时失效,若Master信息超时失效或Master信息不存在,则所述的Slave模式的集群节点进入选举流程。
3.根据权利要求1所述的一种基于内存数据库的简便集群主从选举方法,其特征是所述集群节点检测Master信息,根据Master信息判断是否进入选举流程,包括:
Master模式的集群节点获取Master信息,校验所述的Master模式的集群节点ID是否超时失效,若所述的Master模式的集群节点ID超时失效或与Master节点ID不一致或Master信息不存在,则所述的Master模式的集群节点切换回Slave模式,进入选举流程。
4.根据权利要求1-3任一项所述的一种基于内存数据库的简便集群主从选举方法,其特征是所述获取最新Master信息进行校验,校验成功则选举成功,包括:
通过共享数据,参与选举的且已写入Master信息的集群节点获取最新Master信息,通过最新Master信息校验Master节点ID是否与本集群节点ID一致,若不一致,则进入Slave模式,若一致,则校验成功,选举成功。
5.根据权利要求1或4所述的一种基于内存数据库的简便集群主从选举方法,其特征是所述进入Master工作模式之后,包括:Master节点进入Master状态维护流程。
6.根据权利要求5所述的一种基于内存数据库的简便集群主从选举方法,其特征是集群节点通过内存数据库共享数据。
7.一种基于内存数据库的简便集群主从选举系统,其特征是包括数据共享模块、判断分析模块、选举模块及校验模块,
集群节点通过共享数据,利用判断分析模块检测Master信息,根据Master信息判断是否进入选举流程,
集群节点若进入选举流程,则通过选举模块获取Master信息,确认Master节点失效且未有节点已参与选举,作为Master节点写入Master信息以参与选举,并通过校验模块获取最新Master信息进行校验,校验成功则选举成功,进入Master工作模式。
8.一种基于内存数据库的简便集群主从选举装置,其特征是包括至少一个存储器和至少一个处理器;
所述至少一个存储器,用于存储机器可读程序;
所述至少一个处理器,用于调用所述机器可读程序,执行权利要求1至6中任一项所述的一种基于内存数据库的简便集群主从选举方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111084967.9A CN113901047A (zh) | 2021-09-16 | 2021-09-16 | 一种基于内存数据库的简便集群主从选举方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111084967.9A CN113901047A (zh) | 2021-09-16 | 2021-09-16 | 一种基于内存数据库的简便集群主从选举方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113901047A true CN113901047A (zh) | 2022-01-07 |
Family
ID=79028611
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111084967.9A Pending CN113901047A (zh) | 2021-09-16 | 2021-09-16 | 一种基于内存数据库的简便集群主从选举方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113901047A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328931A (zh) * | 2022-08-29 | 2022-11-11 | 建信金融科技有限责任公司 | 数据库集群数据校验方法、装置、存储介质及电子设备 |
-
2021
- 2021-09-16 CN CN202111084967.9A patent/CN113901047A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328931A (zh) * | 2022-08-29 | 2022-11-11 | 建信金融科技有限责任公司 | 数据库集群数据校验方法、装置、存储介质及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108076098B (zh) | 一种业务处理方法及系统 | |
CN102402395B (zh) | 基于仲裁磁盘的高可用系统不间断运行方法 | |
CN104077199B (zh) | 基于共享磁盘的高可用集群的隔离方法和系统 | |
CN110807064B (zh) | Rac分布式数据库集群系统中的数据恢复装置 | |
CN103345502B (zh) | 分布式数据库的事务处理方法和系统 | |
CN103019889A (zh) | 分布式文件系统及其故障处理方法 | |
CN107918570B (zh) | 一种双活系统共享仲裁逻辑盘的方法 | |
CN107423390B (zh) | 一种基于oltp-olap混合关系型数据库系统内部的数据实时同步方法 | |
CN101707399A (zh) | 电能信息采集方法及系统 | |
US10826812B2 (en) | Multiple quorum witness | |
CN109684050B (zh) | 一种并行化事务执行器的使用方法 | |
CN110727709A (zh) | 一种集群数据库系统 | |
CN112527647B (zh) | 基于NS-3的Raft共识算法测试系统 | |
CN104573428B (zh) | 一种提高服务器集群资源有效性的方法及系统 | |
CN105281949A (zh) | 混合存储模式中主机的隔离方法和隔离装置 | |
CN113254275A (zh) | 一种基于分布式块设备的MySQL高可用架构方法 | |
CN113901047A (zh) | 一种基于内存数据库的简便集群主从选举方法 | |
CN113658351A (zh) | 一种产品生产的方法、装置、电子设备及存储介质 | |
CN104158843A (zh) | 分布式文件存储系统的存储单元失效检测方法及装置 | |
CN104052799B (zh) | 一种利用资源环实现高可用存储的方法 | |
CN114500289B (zh) | 控制平面恢复方法、装置、控制节点及存储介质 | |
CN113010495B (zh) | 一种数据库优化方法及装置 | |
CN104951346A (zh) | 一种用于嵌入式系统的进程管理方法及系统 | |
CN105007293A (zh) | 双主控网络系统及该系统中业务请求的双写方法 | |
CN117827544B (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 |