CN116107828A - 主节点选择方法、分布式数据库及存储介质 - Google Patents
主节点选择方法、分布式数据库及存储介质 Download PDFInfo
- Publication number
- CN116107828A CN116107828A CN202111334573.4A CN202111334573A CN116107828A CN 116107828 A CN116107828 A CN 116107828A CN 202111334573 A CN202111334573 A CN 202111334573A CN 116107828 A CN116107828 A CN 116107828A
- Authority
- CN
- China
- Prior art keywords
- node
- standby
- information
- master
- nodes
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Data Mining & Analysis (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种主节点选择方法、分布式数据库及计算机可读存储介质,其中,应用于分布式数据库的主节点选择方法,分布式数据库包括第一主节点、备用节点和分布式服务节点,分布式服务节点储存对应于第一主节点的第一节点信息和对应于备用节点的第二节点信息,方法包括:接收由分布式服务节点发送的选举通知信息,选举通知信息由分布式服务节点在确定存在第一节点信息发生变化的情况下生成;根据选举通知信息、预置的优先级参数以及第一节点信息和第二节点信息,选择用于切换第一主节点的第二主节点,优先级参数对应于备用节点。本发明实施例中,能够提升分布式数据库的运行稳定性,便于对分布式数据库进行运维管理和维护。
Description
技术领域
本发明实施例涉及但不限于计算机技术领域,尤其涉及一种主节点选择方法、分布式数据库及计算机可读存储介质。
背景技术
在大数据背景下,无论是外部互联网还是企业内部的数据量都呈指数级增加,使得数据库需要接收海量的数据,这直接挑战着服务器的承载能力。针对传统的单个服务器在面对爆炸的数据量时,通常将单个服务器的性能提升至极强,但这种方式的成本太高,相比之下,分布式数据库使用多台普通性能的服务器即可解决上述问题,但是分布式数据库在分库分表的同时,无法确保数据库和管理节点能够保持高可用状态,因此运行稳定性不好。
发明内容
以下是对本文详细描述的主题的概述。本概述并非是为了限制权利要求的保护范围。
本发明实施例提供了一种主节点选择方法、分布式数据库及计算机可读存储介质,能够提升分布式数据库的运行稳定性。
第一方面,本发明实施例提供了一种主节点选择方法,应用于分布式数据库,所述分布式数据库包括第一主节点、备用节点和分布式服务节点,所述分布式服务节点储存对应于所述第一主节点的第一节点信息和对应于所述备用节点的第二节点信息,所述方法包括:
接收由所述分布式服务节点发送的选举通知信息,所述选举通知信息由所述分布式服务节点在确定存在所述第一节点信息发生变化的情况下生成;
根据所述选举通知信息、预置的优先级参数以及来自所述分布式服务节点的所述第一节点信息和所述第二节点信息,选择用于切换所述第一主节点的第二主节点,所述优先级参数对应于所述备用节点。
第二方面,本发明实施例还提供了一种分布式数据库,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上第一方面所述的主节点选择方法。
第三方面,本发明实施例还提供了一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行如上第一方面所述的主节点选择方法。
本发明实施例包括:应用于分布式数据库的主节点选择方法,分布式数据库包括第一主节点、备用节点和分布式服务节点,分布式服务节点储存对应于第一主节点的第一节点信息和对应于备用节点的第二节点信息,方法包括:接收由分布式服务节点发送的选举通知信息,选举通知信息由分布式服务节点在确定存在第一节点信息发生变化的情况下生成;根据选举通知信息、预置的优先级参数以及来自分布式服务节点的第一节点信息和第二节点信息,选择用于切换第一主节点的第二主节点,优先级参数对应于备用节点。根据本发明实施例提供的方案,当对应于第一主节点的第一节点信息发生变化,说明第一主节点可能出现故障情况,分布式服务节点能够迅速向分布式数据库通知提示该故障情况,同时向分布式数据库提供预先存储的第一节点信息和第二节点信息,进而分布式数据库可以根据选举通知信息、第一节点信息、第二节点信息以及预置的优先级参数,选择第二主节点以切换出现故障情况的第一主节点,保证主管理节点的高可用,提升分布式数据库的运行稳定性,便于对分布式数据库进行运维管理和维护。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。
附图说明
附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。
图1是本发明一个实施例提供的用于执行主节点选择方法的分布式数据库的示意图;
图2是本发明一个实施例提供的主节点选择方法的流程图;
图3是本发明一个实施例提供的主节点选择方法中,选择第二主节点的流程图;
图4是本发明一个实施例提供的主节点选择方法中,确定待选节点的流程图;
图5是本发明另一个实施例提供的主节点选择方法中,确定待选节点的流程图;
图6是本发明另一个实施例提供的主节点选择方法中,选择第二主节点的流程图;
图7是本发明一个实施例提供的主节点选择方法中,选择第二主节点之前的流程图;
图8是本发明一个实施例提供的主节点选择方法中,获取第一节点信息和第二节点信息的流程图;
图9是本发明一个实施例提供的分布式数据库的应用场景示意图;
图10是本发明一个实施例提供的主节点选择方法中,选择第二主节点之后的流程图;
图11是本发明另一个实施例提供的主节点选择方法中,选择第二主节点之后的流程图;
图12是本发明一个实施例提供的主节点选择方法的执行时序示意图;
图13是本发明一个实施例提供的分布式数据库的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
需要注意的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本发明提供了一种主节点选择方法、分布式数据库及计算机可读存储介质,当对应于第一主节点的第一节点信息发生变化,说明第一主节点可能出现故障情况,分布式服务节点能够迅速向分布式数据库通知提示该故障情况,同时向分布式数据库提供预先存储的第一节点信息和第二节点信息,进而分布式数据库可以根据选举通知信息、第一节点信息、第二节点信息以及预置的优先级参数,选择第二主节点以切换出现故障情况的第一主节点,保证主管理节点的高可用,提升分布式数据库的运行稳定性,便于对分布式数据库进行运维管理和维护。
下面结合附图,对本发明实施例作进一步阐述。、
参照图1:图1是本发明一个实施例提供的用于执行主节点选择方法的分布式数据库的示意图。
在图1的示例中,分布式数据库包括但不限于:第一主节点、备用节点和分布式服务节点,其中,第一主节点和备用节点均起到针对于分布式数据库的管理维护作用,分布式服务节点用于提供分别对应于第一主节点和备用节点的临时节点信息,分布式服务节点可以但不限于为各种类型的分布式程序协调服务,例如可以为本领域常用的zookeeper,通过将各个管理节点临时注册到zookeeper上而实现储存相关节点信息;第一主节点和备用节点的区别在于第一主节点作为主管理节点,具有高可用性,同时第一主节点与备用节点之间的相对关系是可以变化的,即在不同场景或条件下,可以设置相应的节点作为主管理节点,例如为了适配A场景的管理,选择设置其中一个备用节点作为主管理节点进行使用等,即本实施例的分布式数据库可以应用于不同的场景,在不同的场景下,第一主节点、备用节点和分布式服务节点可以具体设置各自参数以及构成方式等,这在本实施例中并未限制;在通常情况下,主管理节点可以设置为一个,备用节点可以设置为一个或多个,分布式服务节点可以设置为一个。在另一实施例中,分布式数据库还包括但不限于:
数据库计算节点(Database Proxy,DBProxy),用于处理分布式数据库的分布规则和复杂语句;
数据库代理(Database Agent,DBAgent),用于执行反向事务、监控并反馈分布式数据库状态;
全局事务管理(Global Traffic Manager,GTM),用于分配全局事务ID编号;
计算节点管理器,用于管理DBProxy以及元数据的发送,元数据表示分布式数据库的分布规则、表结构等相关的数据;
数据节点管理器,用于管理DBAgent反馈的数据库状态;
元数据服务器MDS,用于管理分布式数据库中的元数据;
关系数据库(Relationship DataBase,RDB),为用于存储元数据的数据库;
操作维护模块(Operation Maintenance Module,OMM),用于实现分布式数据库的界面化操作。
需要说明的是,针对于不同的分布式数据库,其各自组成可以不同,上述实施例给出的分布式数据库中的组成结构或模块不具有特定性,不应将其看作为对本实施例的限制;分布式服务节点中储存的节点信息为临时数据,不影响第一节点信息和第二节点信息的原有归属,可以看作将第一节点信息和第二节点信息复制并储存在分布式服务节点中。
在一实施例中,如图1所示,分布式数据库中的DBProxy、DBAgent和GTM可以单独设置在一个区间内,用于配合管理作为主管理节点的第一主节点和作用备管理节点的备用节点,起到管理分布式数据库的作用。
在一实施例中,如图1所示,第一主节点设置有至少两个管理节点,分别为OMM节点和MDS节点,OMM节点内包括OMM和RDB等组件,MDS节点内包括PM、CM和MDS等组件,并且OMM节点和MDS节点都安装有OmmAgent,该OmmAgent用于在特定情况下执行选举程序而确定新的主管理节点,即OmmAgent为预先设置好的用于选举主管理节点的程序,在需要应用时可以直接进行利用;在每个OmmAgent中可以创建一个配置文件,该配置文件中含有每个管理节点的信息,包括各个管理节点的IP、优先级参数和选举开关参数,其中,每个管理节点的IP用于区分该管理节点与其他管理节点之间的差异,优先级参数用于表征将该管理节点选举为新的主管理节点的优先度,选举开关参数用于表征是否适合被选举为新的主管理节点,优先级参数和选举开关参数可以根据实际应用场景进行相应设置,再根据优先级参数和选举开关参数选举得到符合要求的主管理节点,这在本实施例中并未限制。
需要说明的是,虽然OMM节点和MDS节点都安装有OmmAgent,但主要由OMM节点下的OmmAgent进行判断并实现选举,并且在实际场景中,可以不用预先设置OmmAgent而实时进行选举,这在本实施例中同样可以实现相应目的,或者在OmmAgent下,还可以设置更多的携带有OmmAgent的节点以实施选举,并适应性地选择其中一个OmmAgent作为主要选举程序,这在本实施例中并未限制。
可以理解地是,本发明各个实施例提供针对分布式数据库中的管理节点进行选举的方式,但考虑到分布式数据库的一致性和扩展性,因此对于分布式数据库中的其他产品,针对分布式数据库中的管理节点进行选举的方式也同样适用。
分布式数据库可以包括有存储器和处理器,其中,存储器和处理器可以通过总线或者其他方式连接。
存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
本发明实施例描述的分布式数据库以及应用场景是为了更加清楚的说明本发明实施例的技术方案,并不构成对于本发明实施例提供的技术方案的限定,本领域技术人员可以知道,随着分布式数据库的演变和新应用场景的出现,本发明实施例提供的技术方案对于类似的技术问题,同样适用。
本领域技术人员可以理解的是,图1中示出的分布式数据库并不构成对本发明实施例的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
在图1所示的分布式数据库中,分布式数据库可以调用其储存的主节点选择程序,以配合执行主节点选择方法。
基于上述分布式数据库的结构,提出本发明的主节点选择方法的各个实施例。
如图2所示,图2是本发明一个实施例提供的主节点选择方法的流程图,可以但不限于应用于如图1实施例所示的分布式数据库,该主节点选择方法包括但不限于步骤S100至S200。
步骤S100:接收由分布式服务节点发送的选举通知信息,选举通知信息由分布式服务节点在确定存在第一节点信息发生变化的情况下生成。
在一实施例中,由于分布式服务节点储存对应于第一主节点的第一节点信息,因此分布式服务节点能够实时检测到第一节点信息的变化情况,当检测到对应于第一主节点的第一节点信息发生变化,则说明第一主节点可能出现故障情况,因而分布式服务节点迅速向分布式数据库通知提示该故障情况,以使得分布式数据库能够尽快对此故障情况进行响应并修复,由此可见,分布式服务节点能够快速发现并上传选举通知信息到分布式数据库,有利于提升分布式数据库的应急故障处理效率。
可以理解地是,由于选举通知信息仅在特定情形下生成,因此不会影响到分布式服务节点的正常运行流程,并且在不同应用场景下,选举通知信息的生成形式及发送方式也并未限定,可以由本领域技术人员进行选择设置,这在本实施例中并未限定。
步骤S200:根据选举通知信息、预置的优先级参数以及来自分布式服务节点的第一节点信息和第二节点信息,选择用于切换第一主节点的第二主节点,优先级参数对应于备用节点。
在一实施例中,当对应于第一主节点的第一节点信息发生变化,说明第一主节点可能出现故障情况,分布式服务节点能够迅速向分布式数据库通知提示该故障情况,同时向分布式数据库提供预先存储的第一节点信息和第二节点信息,进而分布式数据库可以根据选举通知信息、第一节点信息、第二节点信息以及预置的优先级参数,选择第二主节点以切换出现故障情况的第一主节点,保证主管理节点的高可用,提升分布式数据库的运行稳定性,便于对分布式数据库进行运维管理和维护。
在图3的示例中,步骤S200包括但不限于步骤S210至S230。
步骤S210:根据选举通知信息从来自分布式服务节点的第一节点信息中,获取第一主节点的第一元数据,以及从来自分布式服务节点的多个第二节点信息中,分别获取每个备用节点的第二元数据;
步骤S220:根据第一主节点的第一元数据与各个备用节点的第二元数据之间的差异性,从多个备用节点中确定待选节点;
步骤S230:根据待选节点和预置的优先级参数,选择其中一个待选节点为第二主节点。
在一实施例中,由于元数据是关于数据的组织、数据域及其关系的数据信息,能够良好表征管理节点的应用性能,因此本实施例基于元数据来进一步选择第二主节点,通过从来自分布式服务节点的第一节点信息和第二节点信息中分别获取相应的第一元数据和第二元数据,进而根据第一元数据与第二元数据之间的差异性可以确定哪种元数据对应的备用节点更优,从而将这部分备用节点挑选出来作为待选节点,实现备用节点的优化筛选,针对经过优选而得到的待选节点,通过比较各个待选节点之间的优先级即可从中选择出作为主管理节点的第二主节点;通过上述步骤流程所选择的第二主节点,充分考虑了节点信息的数据类型影响、元数据差异化影响以及优先级影响,相比于相关技术,精确度更高更可靠,更容易符合分布式数据库的应用要求。
在图4的示例中,步骤S220包括但不限于步骤S221。
步骤S221:当确定存在第一主节点的第一元数据与第一备用节点的第二元数据一致的情况,从多个备用节点中确定第一备用节点为待选节点。
在一实施例中,在选举主管理节点的过程中,充分考虑到备用节点与原来的第一主节点之间数据的一致性,能够从多个备用节点中确定满足一致性条件的第一备用节点为待选节点,以便于从待选节点中确定新的管理节点,有利于充分保证所选择的新的管理节点具有一定的数据完整性,不会出现较大的数据误差。
在图5的示例中,步骤S220还包括但不限于步骤S222。
步骤S222:当确定不存在第一主节点的第一元数据与第一备用节点的第二元数据一致的情况,确定多个备用节点为待选节点。
在一实施例中,在选举主管理节点的过程中,充分考虑到备用节点与原来的第一主节点之间数据的一致性,当确定不存在满足一致性条件的第一备用节点,则说明无法根据第一备用节点而确定待选节点,在这种情况下,无需针对备用节点进行进一步地选择,能够缩短选择流程,优化管理维护资源,进而直接确定备用节点为待选节点,以便于从待选节点中确定新的管理节点;需要说明的是,虽然步骤S222的流程中并未确定满足一致性条件的第一备用节点,但存在其他可以用于确定满足一致性条件的第一备用节点的具体方式,本领域技术人员可以根据实际应用场景进行相应采用,这在本实施例中并未限定。
在图6的示例中,步骤S230包括但不限于步骤S231至S232。
步骤S231:根据待选节点和预置的优先级参数,从待选节点中确定与最高优先级参数匹配的目标待选节点;
步骤S232:选择目标待选节点为第二主节点。
在一实施例中,由于每个待选节点均对应于一个优先级参数,因此针对所有待选节点,可以通过比较各个待选节点之间的优先级参数二确定优先级参数最高的目标待选节点,进而选择目标待选节点为作为主管理节点的第二主节点,可以看出,在选择第二主节点的过程中,由于考虑到各个待选节点在应用场景中的优先度,并根据优先度来比较不同的待选节点,从而保证选主时能够选择到更加符合应用场景实际情况的主管理节点,保证主管理节点的高可用,便于对分布式数据库进行运维管理和维护。
在图7的示例中,步骤S200之前还包括但不限于步骤S300。
步骤S300:根据选举通知信息,从分布式服务节点中获取对应于第一主节点的第一节点信息和对应于备用节点的第二节点信息。
在一实施例中,当分布式服务节点检测到对应于第一主节点的第一节点信息发生变化,则说明第一主节点可能出现故障情况,因而分布式服务节点迅速向分布式数据库发送选举通知信息以通知提示该故障情况,相应地,分布式数据库根据选举通知信息从分布式服务节点中获取相应的第一节点信息和第二节点信息,以便于基于第一节点信息和第二节点信息以进一步地实现故障修复及处理。
在图8的示例中,步骤S300包括但不限于步骤S310至S320。
步骤S310:根据选举通知信息和预置的选举开关参数,从多个备用节点中确定候选节点,选举开关参数为多个,每个备用节点分别对应一个选举开关参数;
步骤S320:根据选举通知信息,从分布式服务节点中获取对应于第一主节点的第一节点信息和对应于候选节点的第二节点信息。
在一实施例中,由于选举开关参数用于表征是否适合被选举为新的主管理节点,且每个备用节点分别对应一个选举开关参数,因此通过选举开关参数的比较即可确认适合被选举为新的主管理节点的候选节点,通过这种方式可以剔除无效的备用节点,找到更加优化的候选节点,有利于提升选举主管理节点的精确度;不仅如此,在这种情况下,针对于第二节点信息,无需获取所有备用节点的第二节点信息,而只需从分布式服务节点获取对应于候选节点的第二节点信息,步骤流程执行起来更加简便,有利于节省计算机服务资源。
以下给出具体示例以说明上述各实施例的工作原理。
示例一:
如图9所示,图9是本发明一个实施例提供的分布式数据库的应用场景示意图。
在图9的示例中,将6个zookeeper和6个管理节点分别部署到两地三机房,并且每个机房又分为两个,其中,zookeeper与6个管理节点设置在同一服务器下,每个管理节点均设置一组OMM节点和MDS节点,每组OMM节点和MDS节点下均设置OmmAgent,具体地,zookeeper可以设置为多个(也可以设置为一个),每个zookeeper都能够注册相关管理节点(即如图9所示的节点1至节点6)的节点信息,其中,同时安装多个zookeeper是为了保证zookeeper的高可用性;此外,如图9所示,由于存在本地机房、同城机房和异地机房的区别设置,因此优先级参数可以据此设置相应的优先级,例如,考虑到运维、管控及检修的便捷程度,可以设置本地机房的优先级为最高,同城机房次之,异地机房的优先级为最低,基于同样的原理,针对于选举开关参数,可以仅设置本地机房和同城机房为可选举状态(即将该状态对应的选举开关参数设置为true),异地机房设置为不可选举状态(即将该状态对应的选举开关参数设置为false)。
在图10的示例中,步骤S200之后还包括但不限于步骤S400。
步骤S400:向备用节点发送同步更新通知信息,使得备用节点根据同步更新通知信息同步连接备用节点的RDB与第二主节点的RDB。
在一实施例中,由于不同元数据对应的RDB之间需要进行相互通信,这样才使得分布式数据库的整体信息能够实现同步,因此当将主管理节点从第一主节点切换到第二主节点之后,需要重新连接备用节点的RDB与第二主节点的RDB,这通过向备用节点发送同步更新通知信息而实现,从而确保主管理节点的切换不会影响到分布式数据库的整体数据同步,其中,同步更新通知信息至少用于表征已经将主管理节点从第一主节点切换到第二主节点,还可以携带其他相关内容,例如涉及同步连接的程序、RDB的位置信息等,本领域技术人员可以根据实际应用场景进行设置,这在本实施例中并未限定。
在图11的示例中,步骤S200之后还包括但不限于步骤S500。
步骤S500:向分布式服务节点发送节点更新通知信息,使得分布式服务节点根据节点更新通知信息,将对应于第一主节点的第一节点信息更新为对应于第二主节点的第三节点信息。
在一实施例中,由于分布式服务节点提供的与主管理节点对应的节点信息是临时的,需要确保各个时刻点的节点信息是正确无误的,以免产生误导,因此当将主管理节点从第一主节点切换到第二主节点之后,需要将对应于第一主节点的第一节点信息更新为对应于第二主节点的第三节点信息,即实现与主管理节点对应的节点信息的及时更新;通过向分布式服务节点发送节点更新通知信息,从而能够及时更新分布式服务节点中的相关节点信息,确保分布式服务节点提供的相关节点信息为准确无误的,其中,节点更新通知信息至少用于表征已经将主管理节点从第一主节点切换到第二主节点,还可以携带其他相关内容,例如涉及节点更新的程序、第二主节点的位置信息以及与第三节点信息对应的注册信息等,本领域技术人员可以根据实际应用场景进行设置,这在本实施例中并未限定。
以下给出具体示例以说明上述各实施例的工作原理。
示例二:
如图12所示,图12是本发明一个实施例提供的主节点选择方法的执行时序示意图。
在图12的示例中,当检测到作为主管理节点的第一主节点发生异常时,zookeeper上储存的第一节点信息会发生变化,这时zookeeper会通知各个备用节点下的OmmAgent开始进行新主的选举,即开始执行如图12中实施例所示的步骤流程,具体如下:
针对每个备用节点,OmmAgent首先会读取配置文件中的选举开关参数的值,当选举开关参数的值为true时,OmmAgent会继续执行下面的方法步骤,而当选举开关参数的值为false时,表明该备用节点不可被选为主管理节点,因此针对于该备用节点,该OmmAgent结束选举;
OmmAgent从zookeeper上对应的临时节点信息中获取本备用节点的元数据,然后将本备用节点的元数据与原来的主管理节点的元数据进行比较,判断本备用节点的元数据是否与原来的主管理节点的元数据一致:
当存在某元数据与原来的主管理节点的元数据一致的备用节点时,获取这些相关的备用节点的节点信息,同时比较其优先级,将优先级最大的备用节点选为新主;
若不存在某元数据与原来的主管理节点的元数据一致的备用节点时,则直接在可用的备用节点中,将优先级最高的备用节点选为新主;
当选出新主后,需要将新主对应的节点信息更新到zookeeper上主,同时将新主的相关信息广播到其余备用节点及非管理节点上,使其获知已确定新主;
待其余备用节点接收到新主发送的相关信息后,则通过OmmAgent调用相应的脚本程序将备用节点的RDB(即图12中所示的备RDB)连接到新主的RDB(即图12中所示的主RDB)上,以同步分布式数据库的信息,其中,对于数据不一致的新主,需要将主RDB同步到其他备用节点,包括更新数据少的RDB和回滚数据多的RDB等操作;
待完成上述步骤流程,作为新主的第二主节点的OmmAgent启动本节点上的OMM程序和MDS程序,选主选举完成。
需要说明的是,当将主管理节点切换为第二主节点之后,原来的第一主节点可以根据不同应用场景作为管理节点进行运行,例如,若第一主节点的故障是进程出现故障而造成的,那么在修复进程故障之后,其可以作为备用节点运行;若第一主节点的故障是机房宕机造成的,则其无法作为备用节点运行。
另外,如图13所示,本发明的一个实施例还提供了一种分布式数据库,该分布式数据库包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序。
处理器和存储器可以通过总线或者其他方式连接。
本实施例中的分布式数据库能够构成例如图1所示实施例中的分布式数据库的一部分,这些实施例均属于相同的发明构思,因此这些实施例具有相同的实现原理以及技术效果,此处不再详述。
实现上述实施例的主节点选择方法所需的非暂态软件程序以及指令存储在存储器中,当被处理器执行时,执行上述各实施例的主节点选择方法,例如,执行以上描述的图2中的方法步骤S100至S200、图3中的方法步骤S210至S230、图4中的方法步骤S221、图5中的方法步骤S222、图6中的方法步骤S231至S232、图7中的方法步骤S300、图8中的方法步骤S310至S320、图10中的方法步骤S400或图11中的方法步骤S500。
以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
此外,本发明的一个实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令被一个处理器或控制器执行,例如,被上述设备实施例中的一个处理器执行,可使得上述处理器执行上述实施例中的主节点选择方法,例如,执行以上描述的图2中的方法步骤S100至S200、图3中的方法步骤S210至S230、图4中的方法步骤S221、图5中的方法步骤S222、图6中的方法步骤S231至S232、图7中的方法步骤S300、图8中的方法步骤S310至S320、图10中的方法步骤S400或图11中的方法步骤S500。
本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统可以被实施为软件、固件、硬件及其适当的组合。某些物理组件或所有物理组件可以被实施为由处理器,如中央处理器、数字信号处理器或微处理器执行的软件,或者被实施为硬件,或者被实施为集成电路,如专用集成电路。这样的软件可以分布在计算机可读介质上,计算机可读介质可以包括计算机存储介质(或非暂时性介质)和通信介质(或暂时性介质)。如本领域普通技术人员公知的,术语计算机存储介质包括在用于存储信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移除和不可移除介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁盒、磁带、磁盘存储或其他磁存储装置、或者可以用于存储期望的信息并且可以被计算机访问的任何其他的介质。此外,本领域普通技术人员公知的是,通信介质通常包括计算机可读指令、数据结构、程序模块或者诸如载波或其他传输机制之类的调制数据信号中的其他数据,并且可包括任何信息递送介质。
以上是对本发明的较佳实施方式进行的具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包括在本发明权利要求所限定的范围内。
Claims (11)
1.一种主节点选择方法,应用于分布式数据库,所述分布式数据库包括第一主节点、备用节点和分布式服务节点,所述分布式服务节点储存对应于所述第一主节点的第一节点信息和对应于所述备用节点的第二节点信息,所述方法包括:
接收由所述分布式服务节点发送的选举通知信息,所述选举通知信息由所述分布式服务节点在确定存在所述第一节点信息发生变化的情况下生成;
根据所述选举通知信息、预置的优先级参数以及来自所述分布式服务节点的所述第一节点信息和所述第二节点信息,选择用于切换所述第一主节点的第二主节点,所述优先级参数对应于所述备用节点。
2.根据权利要求1所述的主节点选择方法,其特征在于,所述根据所述选举通知信息、预置的优先级参数以及来自所述分布式服务节点的所述第一节点信息和所述第二节点信息,选择用于切换所述第一主节点的第二主节点,包括:
根据所述选举通知信息从来自所述分布式服务节点的所述第一节点信息中,获取所述第一主节点的第一元数据,以及从来自所述分布式服务节点的多个所述第二节点信息中,分别获取每个所述备用节点的第二元数据;
根据所述第一主节点的所述第一元数据与各个所述备用节点的所述第二元数据之间的差异性,从多个所述备用节点中确定待选节点;
根据所述待选节点和预置的优先级参数,选择其中一个所述待选节点为第二主节点。
3.根据权利要求2所述的主节点选择方法,其特征在于,所述备用节点包括第一备用节点;所述根据所述第一主节点的所述第一元数据与各个所述备用节点的所述第二元数据之间的差异性,从多个所述备用节点中确定待选节点,包括:
当确定存在所述第一主节点的所述第一元数据与所述第一备用节点的所述第二元数据一致的情况,从多个所述备用节点中确定所述第一备用节点为待选节点。
4.根据权利要求3所述的主节点选择方法,其特征在于,所述根据所述第一主节点的所述第一元数据与各个所述备用节点的所述第二元数据之间的差异性,从多个所述备用节点中确定待选节点,还包括:
当确定不存在所述第一主节点的所述第一元数据与所述第一备用节点的所述第二元数据一致的情况,确定多个所述备用节点为待选节点。
5.根据权利要求2所述的主节点选择方法,其特征在于,所述根据所述待选节点和预置的优先级参数,选择其中一个所述待选节点为第二主节点,包括:
根据所述待选节点和预置的优先级参数,从所述待选节点中确定与最高所述优先级参数匹配的目标待选节点;
选择所述目标待选节点为第二主节点。
6.根据权利要求1所述的主节点选择方法,其特征在于,所述根据所述选举通知信息、预置的优先级参数以及来自所述分布式服务节点的所述第一节点信息和所述第二节点信息,选择用于切换所述第一主节点的第二主节点之前,还包括:
根据所述选举通知信息,从所述分布式服务节点中获取对应于所述第一主节点的所述第一节点信息和对应于所述备用节点的所述第二节点信息。
7.根据权利要求6所述的主节点选择方法,其特征在于,所述备用节点为多个;所述根据所述选举通知信息,从所述分布式服务节点中获取对应于所述第一主节点的所述第一节点信息和对应于所述备用节点的所述第二节点信息,包括:
根据所述选举通知信息和预置的选举开关参数,从多个所述备用节点中确定候选节点,所述选举开关参数为多个,每个所述备用节点分别对应一个所述选举开关参数;
根据所述选举通知信息,从所述分布式服务节点中获取对应于所述第一主节点的所述第一节点信息和对应于所述候选节点的所述第二节点信息。
8.根据权利要求1所述的主节点选择方法,其特征在于,所述根据所述选举通知信息、预置的优先级参数以及来自所述分布式服务节点的所述第一节点信息和所述第二节点信息,选择用于切换所述第一主节点的第二主节点之后,还包括:
向所述备用节点发送同步更新通知信息,使得所述备用节点根据所述同步更新通知信息同步连接所述备用节点的关系数据库与所述第二主节点的关系数据库。
9.根据权利要求1所述的主节点选择方法,其特征在于,所述根据所述选举通知信息、预置的优先级参数以及来自所述分布式服务节点的所述第一节点信息和所述第二节点信息,选择用于切换所述第一主节点的第二主节点之后,还包括:
向所述分布式服务节点发送节点更新通知信息,使得所述分布式服务节点根据所述节点更新通知信息,将对应于所述第一主节点的所述第一节点信息更新为对应于所述第二主节点的第三节点信息。
10.一种分布式数据库,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至9中任意一项所述的主节点选择方法。
11.一种计算机可读存储介质,存储有计算机可执行指令,所述计算机可执行指令用于执行权利要求1至9中任意一项所述的主节点选择方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334573.4A CN116107828A (zh) | 2021-11-11 | 2021-11-11 | 主节点选择方法、分布式数据库及存储介质 |
PCT/CN2022/117127 WO2023082800A1 (zh) | 2021-11-11 | 2022-09-05 | 主节点选择方法、分布式数据库及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111334573.4A CN116107828A (zh) | 2021-11-11 | 2021-11-11 | 主节点选择方法、分布式数据库及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116107828A true CN116107828A (zh) | 2023-05-12 |
Family
ID=86262606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111334573.4A Pending CN116107828A (zh) | 2021-11-11 | 2021-11-11 | 主节点选择方法、分布式数据库及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116107828A (zh) |
WO (1) | WO2023082800A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117666970A (zh) * | 2024-01-30 | 2024-03-08 | 杭州阿里云飞天信息技术有限公司 | 数据存储方法以及数据存储装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116795636B (zh) * | 2023-06-21 | 2024-02-13 | 广州市玄武无线科技股份有限公司 | 一种业务系统数据监控方法、装置、电子设备及存储介质 |
CN117112701B (zh) * | 2023-10-20 | 2024-01-19 | 武汉吧哒科技股份有限公司 | 分布式数据库中的节点切换方法、计算机设备及存储介质 |
CN117149534B (zh) * | 2023-11-01 | 2024-02-06 | 北京铁力山科技股份有限公司 | 分布式数据库现主节点选举方法、装置、设备及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10614098B2 (en) * | 2010-12-23 | 2020-04-07 | Mongodb, Inc. | System and method for determining consensus within a distributed database |
CN106161495A (zh) * | 2015-03-25 | 2016-11-23 | 中兴通讯股份有限公司 | 一种主节点选举方法、装置及存储系统 |
CN109005045B (zh) * | 2017-06-06 | 2022-01-25 | 北京金山云网络技术有限公司 | 主备服务系统及主节点故障恢复方法 |
CN109800272A (zh) * | 2019-02-25 | 2019-05-24 | 广州虎牙信息科技有限公司 | 缓存数据同步方法、服务器、应用系统及存储装置 |
CN113156803A (zh) * | 2021-02-03 | 2021-07-23 | 南京华鹞信息科技有限公司 | 一种面向任务的无人机集群资源管理及容错控制方法 |
-
2021
- 2021-11-11 CN CN202111334573.4A patent/CN116107828A/zh active Pending
-
2022
- 2022-09-05 WO PCT/CN2022/117127 patent/WO2023082800A1/zh unknown
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117666970A (zh) * | 2024-01-30 | 2024-03-08 | 杭州阿里云飞天信息技术有限公司 | 数据存储方法以及数据存储装置 |
CN117666970B (zh) * | 2024-01-30 | 2024-05-07 | 杭州阿里云飞天信息技术有限公司 | 数据存储方法以及数据存储装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2023082800A1 (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116107828A (zh) | 主节点选择方法、分布式数据库及存储介质 | |
US11894972B2 (en) | System and method for data replication using a single master failover protocol | |
US20210406279A1 (en) | System and method for maintaining a master replica for reads and writes in a data store | |
US10929240B2 (en) | System and method for adjusting membership of a data replication group | |
WO2020147331A1 (zh) | 一种微服务监控方法及系统 | |
US8719225B1 (en) | System and method for log conflict detection and resolution in a data store | |
US20150120658A1 (en) | System and method for splitting a replicated data partition | |
US11445013B2 (en) | Method for changing member in distributed system and distributed system | |
CN111538763A (zh) | 一种确定集群中主节点的方法、电子设备和存储介质 | |
CN105069152B (zh) | 数据处理方法及装置 | |
CN114900449B (zh) | 一种资源信息管理方法、系统及装置 | |
CN110635941A (zh) | 一种数据库节点集群故障迁移方法与装置 | |
CN108509296B (zh) | 一种处理设备故障的方法和系统 | |
CN107291575B (zh) | 一种数据中心故障时的处理方法和设备 | |
CN113836179B (zh) | 一种交易读写分离装置 | |
CN112711466B (zh) | 悬挂事务巡检方法和装置、电子设备和存储介质 | |
CN113615146B (zh) | 基于数据一致性的网络功能实例的重新选择 | |
CN115905270B (zh) | 数据库中主用数据节点的确定方法、装置及存储介质 | |
CN117675539A (zh) | 一种服务集群管理的方法与服务集群 | |
CN114448781A (zh) | 一种数据处理系统 | |
CN114253802A (zh) | 服务节点的处理方法及装置、存储介质、电子装置 | |
CN116431594A (zh) | 一种数据存储方法及装置、计算机可读存储介质 | |
CN115941481A (zh) | 双机热备配置同步的方法、装置、存储介质及电子设备 | |
CN116225563A (zh) | 分布式数据库的策略配置方法、装置、设备及介质 | |
CN117762507A (zh) | 用于机框式设备策略id维护的方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |