CN117857284A - 分布式数据库集群的管理方法、装置、设备及介质 - Google Patents
分布式数据库集群的管理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117857284A CN117857284A CN202311781500.9A CN202311781500A CN117857284A CN 117857284 A CN117857284 A CN 117857284A CN 202311781500 A CN202311781500 A CN 202311781500A CN 117857284 A CN117857284 A CN 117857284A
- Authority
- CN
- China
- Prior art keywords
- node
- abnormal
- service node
- information
- data node
- 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
- 238000007726 management method Methods 0.000 title claims description 137
- 230000002159 abnormal effect Effects 0.000 claims abstract description 215
- 230000003068 static effect Effects 0.000 claims abstract description 131
- 238000001514 detection method Methods 0.000 claims abstract description 101
- 238000000034 method Methods 0.000 claims abstract description 50
- 230000005856 abnormality Effects 0.000 claims description 41
- 238000004590 computer program Methods 0.000 claims description 17
- 238000004891 communication Methods 0.000 abstract description 9
- 238000012545 processing Methods 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 9
- 230000008569 process Effects 0.000 description 9
- 230000004044 response Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请适用于数据库技术领域,尤其涉及一种分布式数据库集群的管理方法、装置、设备及介质。该方法在一数据节点检测到与其连接的数据节点的心跳断链时,生成异常数据节点的异常信息并通知服务节点,服务节点会根据异常信息对异常数据节点进行异常探测,在异常探测成功后,异常数据节点会通过校验全局静态信息版本号,以确认是否需要主动从服务节点拉取全局静态数据。从而通过数据节点间的通讯来及时感知到异常的节点,无需管理服务节点与数据节点的网络心跳连接,采用网络开销远小于与全部数据节点的心跳链接的针对性的异常探测,使得异常数据节点能够及时主动拉取静态信息,保证及时发现并处理故障。
Description
技术领域
本申请适用于数据库技术领域,尤其涉及一种分布式数据库集群的管理方法、装置、设备及介质。
背景技术
在分布式数据库集群的管理体系中,由于需要管理大量节点,因此,分布式数据库集群管理系统针对节点管理非常复杂,特别是在节点探活、节点上下线等场景中,对管理的效率和性能的要求较高。分布式数据库集群的管理需要快速响应故障以及能快速恢复集群的稳定,都是对分布式数据库集群管理系统可靠性的考验。
目前,中心化集群管理的分布式数据库都是由网络心跳去保证对各个节点的故障监控,当数据库处于网络波动环境中时,中心化集群管理服务容易产生节点故障的误判,导致集群处于非正常状态,另外,如果只是通过中心化集群管理服务节点使用网络心跳检测故障,就必须保持其与所有节点的网络心跳,这就需要周期性的对所有数据节点发送心跳消息,导致网络开销较大,并且集群管理节点在网络波动时需要同时处理大量的网络异常流程,导致管理压力较大,同时也会出现消息延时、故障反馈不及时等问题。可见,通过上述的网络心跳实现节点故障监控,存在可靠性差和网络开销较大等问题。
因此,如何减少管理服务与其他节点的网络心跳连接,以降低网络开销的同时,保证及时发现并处理故障,以保证节点信息的一致性成为亟待解决的问题。
发明内容
有鉴于此,本申请实施例提供了一种分布式数据库集群的管理方法、装置、设备及介质,以解决如何减少管理服务与其他节点的网络心跳连接,以降低网络开销的同时,保证及时发现并处理故障,以保证节点信息的一致性的问题。
第一方面,本申请实施例提供一种分布式数据库集群的管理方法,所述分布式数据库集群包括N个数据节点和至少一个服务节点,N为大于一的整数,所述管理方法包括:
在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定所述第二数据节点为异常数据节点,所述第一数据节点将所述异常数据节点的异常信息通知给所述服务节点;
所述服务节点根据所述异常信息,对所述异常数据节点进行异常探测,并在探测到所述异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测;
所述异常数据节点在接收到异常探测后,更新自身动态信息得到所述最新动态信息,并将所述最新动态信息通知给所述服务节点,以及将自身静态信息的版本与所述服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向所述服务节点主动拉取所述全局静态信息。
第二方面,本申请实施例提供一种分布式数据库集群的管理装置,所述分布式数据库集群包括N个数据节点和至少一个服务节点,N为大于一的整数,所述管理装置包括:
异常通知模块,用于在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定所述第二数据节点为异常数据节点,所述第一数据节点将所述异常数据节点的异常信息通知给所述服务节点;
异常探测模块,用于所述服务节点根据所述异常信息,对所述异常数据节点进行异常探测,并在探测到所述异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测;
主动拉取模块,用于所述异常数据节点在接收到异常探测后,更新自身动态信息得到所述最新动态信息,并将所述最新动态信息通知给所述服务节点,以及将自身静态信息的版本与所述服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向所述服务节点主动拉取所述全局静态信息。
第三方面,本申请实施例提供一种计算机设备,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如第一方面所述的管理方法。
第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如第一方面所述的管理方法。
本申请实施例与现有技术相比存在的有益效果是:本申请的分布式数据库集群包括N个数据节点和至少一个服务节点,在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定所述第二数据节点为异常数据节点,所述第一数据节点将所述异常数据节点的异常信息通知给所述服务节点,所述服务节点根据所述异常信息,对所述异常数据节点进行异常探测,并在探测到所述异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测,所述异常数据节点在接收到异常探测后,更新自身动态信息得到所述最新动态信息,并将所述最新动态信息通知给所述服务节点,以及将自身静态信息的版本与所述服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向所述服务节点主动拉取所述全局静态信息从而通过数据节点间的通讯来及时感知到异常的节点,无需管理服务节点与数据节点的网络心跳连接,采用网络开销远小于与全部数据节点的心跳链接的针对性的异常探测,使得异常的数据节点能够及时获取到最新版本的静态信息,保证及时发现并处理故障。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例一提供的一种分布式数据库集群的管理方法的一应用环境示意图;
图2是本申请实施例二提供的一种分布式数据库集群的管理方法的流程示意图;
图3是本申请实施例三提供的一种分布式数据库集群的管理方法的流程示意图;
图4是本申请实施例四提供的一种分布式数据库集群的管理方法的流程示意图;
图5是本申请实施例五提供的一种分布式数据库集群的管理方法的流程示意图;
图6是本申请实施例六提供的一种分布式数据库集群的管理方法的流程示意图;
图7是本申请实施例七提供的一种分布式数据库集群的管理装置的结构示意图;
图8是本申请实施例八提供的一种计算机设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
应理解,以下实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
为了说明本申请的技术方案,下面通过具体实施例来进行说明。
本申请实施例一提供的一种分布式数据库集群的管理方法,可应用在如图1的应用环境中,其中,分布式数据库集群包括管理服务节点、协调服务节点等服务节点,还包括数据节点1、数据节点2、……、数据节点n等N个数据节点,其中,管理服务节点与协调服务节点、N个数据节点进行通信(n∈N>1),数据节点1和数据节点2可以形成节点组,当然,在该集群中可以包含多个节点组,管理服务节点可以在用户的操作下创建数据节点,管理服务节点通过主动推送的方式进行全局静态信息的推送,数据节点能够从管理服务节点上主动拉取全局静态信,数据节点还能够通过动态信息通知的方式将动态信息上报给管理服务节点息,也可以上报给协调服务节点。其中,管理服务节点和数据节点均可以包括但不限于掌上电脑、桌上型计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personalcomputer,UMPC)、上网本、云端计算机设备、个人数字助理(personal digital assistant,PDA)等计算机设备,也可以是独立的服务器来实现。
参见图2,是本申请实施例二提供的一种分布式数据库集群的管理方法的流程示意图,上述管理方法应用于图1中的分布式数据库集群,本实施例以服务节点包括管理服务节点为例,当然,管理服务节点可以不止一个,每个管理服务节点可以同时使用,也可以交替使用,其中,还可以设置一个管理服务节点可以管理部分的数据节点。如图2所示,该分布式数据库集群的管理方法可以包括以下步骤:
步骤S201,在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定第二数据节点为异常数据节点,第一数据节点将异常数据节点的异常信息通知给管理服务节点。
本申请实施例中,分布式数据库集群是由多个数据库的数据节点组合形成,多个数据节点可以形成一个节点组,其中,第一数据节点和第二数据节点均为N个数据节点中的任一个数据节点,第一数据节点和第二数据节点可以在一个节点组内,对于分布式数据库集群中一个节点组中的数据节点之间具备通信关系,具体为心跳链接。
在该节点组中,针对第一数据节点,如果该第一数据节点与第二数据节点之间的心跳链接断链,则从数据节点的角度来说,两个数据节点中的一个为异常,即如果第一数据节点认为自身没有异常,则该第一数据节点认为第二数据节点异常,而如果第二数据节点认为自身没有异常,则该第二数据节点认为第一数据节点异常,因此,二者均可以将其认为的数据节点异常的信息发送给管理服务节点,然而,管理服务节点仅能够接收到不存在异常的数据节点发送的异常信息,例如,第一数据节点能够将异常信息发送到管理服务节点,因此,第二数据节点成为异常数据节点。
其中,数据节点的异常可以是指数据节点的网络故障以及数据节点的非网络故障下线等节点自身故障,异常信息可以包括异常的数据节点的节点信息、监测到异常的数据节点的节点信息等,采用此步骤S201可以让管理服务节点在无需与每个数据节点心跳链接的基础上获取到数据节点的异常,避免心跳链接占用网络开销。
举例说明,数据节点A和数据节点B通信连接,当数据节点A与数据节点B之间的心跳断链时,如果数据节点A为异常,则数据节点B可以将其认为数据节点A异常的异常信息发送给管理服务节点,当然,由于数据节点B为正常的,因此,该管理服务节点能够接收到数据节点B发送的异常信息,如果数据节点B为异常,则数据节点A可以将其认为数据节点B异常的异常信息发送给管理服务节点,当然,由于数据节点A为正常的,因此,该管理服务节点能够接收到数据节点A发送的异常信息。
步骤S202,管理服务节点根据异常信息,对异常数据节点进行异常探测,并在探测到异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测。
本申请实施例中,根据异常信息可以确定异常数据节点的节点信息,从而可以依据该节点信息找到对应的异常数据节点,并进行异常探测,其中,异常探测可以是指发送探测信号等,从而使得异常数据节点在异常恢复后能够接收到该探测信号,异常探测成功即可以是指发送的探测信号被异常数据节点接收到,该异常探测成功的状态可以由异常数据节点在接收到探测信号之后反馈一最新动态信息来确定,即异常数据节点对探测信号有回应即为异常探测成功,当然,在异常探测成功后即可结束异常探测。
管理服务节点在得知异常数据节点之后,采用异常探测的方式尝试与异常数据节点建立连接,相较于管理服务节点与每个数据节点进行心跳链接而言,只有在数据节点异常时才会进行通信,其他时间不会占用网络开销,并且采用异常探测的方式仅会占用较小的通信量,也能够在一定程度上降低网络开销。
步骤S203,异常数据节点在接收到异常探测后,更新自身动态信息得到最新动态信息,并将最新动态信息通知给管理服务节点,以及将自身静态信息的版本与管理服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向管理服务节点主动拉取全局静态信息。
本申请实施例中,异常数据节点在接收到异常探测后,表明该异常数据节点已经从异常状态恢复为正常状态,此时,为了让管理服务节点知晓自身恢复正常状态,将自身动态信息进行更新,从而形成最新动态信息,并将该最新动态信息通过动态信息通知的方式发给管理服务节点,以使得管理服务节点在接收到该最新动态信息后,判断异常数据节点是否恢复正常状态,并在异常数据节点恢复正常状态后,确定探测成功并结束异常探测。
动态信息可以是指由数据节点所自己产生和维护的信息,动态信息能够体现对应数据节点的状态,数据节点在出现启停节点、主备切换等操作后,动态信息会进行更新,从而得到一个最新动态信息,当然,数据节点发生异常,并在异常修复之后也会更新自身的动态信息。因此,异常数据节点在异常修复后更新自身动态信息得到最新动态信息,并将最新动态信息发送给管理服务节点,从而实现异常数据节点的动态信息通知操作,即主动向管理服务节点反馈自身状态的变化。在一实施方式中,动态信息可以通过缓存获取,无需从磁盘中读取,处理消息的速度极快。
当然,数据节点可以在出现异常且异常修复后,触发动态信息通知操作,也可以在任一次动态信息发生变更后进行触发动态信息通知操作,使得管理服务节点能够保证对持有的动态信息的一致性。
将所有数据节点的节点信息、每个数据节点所属的节点组信息,以及每个数据节点所属的集群信息作为静态信息,由管理服务节点进行产生和管理所有的静态信息,形成全局静态信息,静态信息可随着使用进行更新,当然,初始的静态信息是在分布式数据库集群部署节点时即可产生。
异常数据节点在恢复到正常状态后,会通过将自身静态信息的版本与管理服务节点中的全局静态信息的版本进行校验,根据校验结果来判断自身静态信息的版本是否需要更新,如果校验结果为自身静态信息的版本落后于全局静态信息的版本,则需要更新,如果校验结果为自身静态信息的版本不落后于全局静态信息的版本,则不需要更新。在需要更新的情况下触发主动拉取,以从管理服务节点中拉取到对应的全局静态信息。在一实施方式中,全局静态信息可以通过缓存获取,无需从磁盘中读取,处理消息的速度极快。
其中,全局静态信息拉取后,用于使异常数据节点更新自身静态信息,每个数据节点中均包含有自身静态信息,该全局静态信息是用于保证整个分布式数据库集群中所有的数据节点具备数据一致性。由于分布式数据库集群可能随时都都会存在静态信息的更新,因此,异常数据节点在异常的一段时间内是无法获取到最新的全局静态信息的,只有在异常恢复后,通过向管理服务节点发送主动拉取才能够得到最新的全局静态信息。
另外,从上述表述可知,全局静态信息在管理服务节点中以版本的形式进行更新,通过比对版本即可完成校验,例如,以版本号的形式进行更新,版本号越大表征版本更新,最新的全局静态信息拥有相较于前一版本的全局静态信息而言更大的版本号。
本申请实施例的分布式数据库集群包括N个数据节点和至少一个管理服务节点,在第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定第二数据节点为异常数据节点,将异常数据节点的异常信息通知给管理服务节点,管理服务节点根据异常信息,对异常数据节点进行异常探测,并在探测到异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测,异常数据节点在接收到异常探测后,更新自身动态信息得到最新动态信息,并将最新动态信息通知给管理服务节点,以及将自身静态信息的版本与管理服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向管理服务节点主动拉取全局静态信息。从而通过数据节点间的通讯来及时感知到异常的节点,无需管理服务节点与数据节点的网络心跳连接,采用网络开销远小于与全部数据节点的心跳链接的针对性的异常探测,使得异常的数据节点能够及时获取到最新版本的静态信息,保证及时发现并处理故障。
参见图3,为本申请实施例三提供的一种分布式数据库集群的管理方法的流程示意图。如图3所示,仍以服务节点包括管理服务节点为例,上述步骤S202中根据异常信息,对异常数据节点进行异常探测,可以包括以下步骤:
步骤S301,管理服务节点根据异常信息,确定异常数据节点。
步骤S302,管理服务节点基于管理服务节点中的全局静态信息的版本,向异常数据节点发送异常探测消息。
其中,异常数据节点用于根据异常探测消息,得到管理服务节点中的全局静态信息的版本。
本实施例中,异常数据节点可以从异常探测消息中获知全局静态信息的版本,从而实现上述步骤S203的将自身静态信息的版本与该全局静态信息的版本进行比较,来判断是否进行主动拉取。
参见图4,为本申请实施例四提供的一种分布式数据库集群的管理方法的流程示意图。如图7所示,仍以服务节点包括管理服务节点为例,上述步骤S202中的在探测到异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测,可以包括以下步骤:
步骤S401,服务节点在探测到异常数据节点通知的最新动态信息时,将最新动态信息的版本与服务节点中对应异常数据节点的动态信息的版本进行比较。
本实施例中,管理服务节点进行异常探测后,如果探测到异常数据节点使用动态信息通知发送来的最新动态信息,经过对最新动态信息的版本进行校验来确定是否探测成功。
步骤S402,若确定最新动态信息的版本为更新的版本,则确定探测成功并结束异常探测。
其中,由于异常数据节点在恢复到正常状态后,会第一时间更新自身的动态信息,形成新的动态信息,当然,其动态信息的版本也发生了更新,将最新动态信息的版本与管理服务节点中存储的该异常数据节点的动态信息的版本进行比较,如果版本不一致,则可以确定最新动态信息为异常数据节点恢复到正常状态后发送的动态信息,如果版本一致,则可以表明异常数据节点仍为恢复到正常状态。
例如,异常数据节点在恢复到正常状态后,自身的动态信息由版本号1.0更新至版本号1.1,而在管理服务节点和协调服务节点中存储的该异常数据节点的动态信息的版本号为1.0,因此,异常数据节点将该1.1版本号的动态信息通知给管理服务节点和协调服务节点之后,管理服务节点和协调服务节点认为动态信息进行了更新,也即是异常数据节点恢复到正常状态,表明探测成功即可以结束异常探测。
可选的是,在确定最新动态信息的版本为更新的版本之后,还包括:
管理服务节点使用最新动态信息的版本更新管理服务节点中对应异常数据节点的动态信息的版本。
其中,对应与上述的动态信息的版本的校验,在管理服务节点接收到异常数据节点的最新动态信息后,会对该管理服务节点中存储的动态信息进行更新,从而有利于后续该异常数据节点再次需要进行异常探测时使用。
在一实施方式中,在上述以服务节点包括管理服务节点的基础上,该服务节点还可以包括一协调服务节点,协调服务节点能够完成与上述实施例二至实施例四中所有管理服务节点所能够执行的功能,其中,该协调服务节点和管理服务节点为不同的设备,也可以共用一个设备。
具体地,以协调服务节点为例,该管理方法包括:
在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定第二数据节点为异常数据节点,第一数据节点将异常数据节点的异常信息通知给协调服务节点;
协调服务节点根据异常信息,对异常数据节点进行异常探测,并在探测到异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测;
异常数据节点在接收到异常探测后,更新自身动态信息得到最新动态信息,并将最新动态信息通知给协调服务节点,以及将自身静态信息的版本与协调服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向协调服务节点主动拉取全局静态信息。
相应地,根据异常信息,对异常数据节点进行异常探测,包括:
协调服务节点根据异常信息,确定异常数据节点;
协调服务节点基于协调服务节点中的全局静态信息的版本,向异常数据节点发送异常探测消息;
其中,异常数据节点用于根据异常探测消息,得到协调服务节点中的全局静态信息的版本。
相应地,在探测到异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测,包括:
协调服务节点在探测到异常数据节点通知的最新动态信息时,将最新动态信息的版本与协调服务节点中对应异常数据节点的动态信息的版本进行比较;
若确定最新动态信息的版本为更新的版本,则确定探测成功并结束异常探测;
相应地,在确定最新动态信息的版本为更新的版本之后,还包括:
协调服务节点使用最新动态信息的版本更新协调服务节点中对应异常数据节点的动态信息的版本。
对于协调服务节点而言,具备与管理服务节点中异常探测的功能,因此,数据节点可以将异常信息通知给该协调服务节点,使得协调服务节点基于该异常信息进行异常探测。协调服务节点无需在定时或者实时向该异常数据节点发送探测信息,从而可以减少管理服务节点对网络通信的占用,增加协调服务节点的异常探测功能,能够与管理服务节点的异常探测功能形成冗余设置,提高系统的可靠性。
其中,协调服务节点所实现的过程相同,可参考上述对管理服务节点的实现过程的描述,在此不再赘述。
参见图5,为本申请实施例五提供的一种分布式数据库集群的管理方法的流程示意图。如图5所示,针对管理服务节点而言,该管理方法还包括以下步骤:
步骤S501,管理服务节点对其中的全局静态信息进行更新,得到更新的全局静态信息。
本申请实施例中,为了便于分布式数据库集群中的数据节点了解到新增的数据节点或者退出的数据节点,以保证信息的一致性,在每次在需要进行全局静态信息的更新后,得到更新的全局静态信息,即管理服务节点实现了维护全局静态信息的功能。
步骤S502,管理服务节点向N个数据节点中不为异常的数据节点推送更新的全局静态信息。
其中,管理服务节点向所有的N个数据节点主动推送更新的全局静态信息,当然,在已经知晓存在异常数据节点时,无需向该异常数据节点发送推送该最新版本的静态信息,而是等待该异常数据节点在异常恢复后执行上述实施例二中记载的主动拉取全局静态信息。
可选的是,在服务节点还包括协调服务节点的情况下,管理方法还包括:
管理服务节点在得到更新的全局静态信息后,向协调服务节点推送更新的全局静态信息。
其中,协调服务节点应当知晓所有的数据节点才能够保证协调服务工作的准确执行,因此,管理服务节点在得到最新的全局静态信息后,会将最新的全局静态信息发送给该协调服务节点。
两个服务节点均可以进行异常探测,分别发送对应的异常探测消息,异常数据节点接收到异常探测消息后能够获取到对应的全局静态信息的版本,由于协调服务节点中全局静态信息是由管理服务节点推送得到的,因此,协调服务节点中的全局静态信息的版本与管理服务节点中的全局静态信息的版本相同,可见,异常数据节点无论是接受到那个服务节点的异常探测消息,均能够获取到管理服务节点中全局静态信息的版本。
参见图6,是本申请实施例六提供的一种分布式数据库集群的管理方法的流程示意图,如图6所示,在上述步骤S601的内容的基础上,可以包括以下步骤:
步骤S601,管理服务节点获取新增数据节点发送的节点元数据。
步骤S602,根据节点元数据,对管理服务节点中的全局静态信息进行更新,得到更新的全局静态信息。
本实施例中,在分布式数据库集群中还具备新增数据节点的功能,其中,管理服务节点用于支撑数据节点的新增注册、申请等工作。因此,若数据节点想要注册加入集群,则需要向对应的管理服务节点发送自身的节点元数据,管理服务节点能够获取到该节点元数据。
其中,节点元数据可以是指节点的动态信息、节点自身的设备参数信息等,以便于管理服务节点能够根据该节点元数据更新静态信息。
对于新增注册的新增数据节点,为了保证新增数据节点的有效性,需要将其节点元数据更新至静态信息中,随后形成一个最新版本的静态信息。
在一实施方式中,如果一个数据节点想要退出集群,也可以通过发送申请的方式,向管理服务节点申请退出,管理服务节点可以从静态信息中剔除该数据节点对应的信息,从而更新静态信息为最新版本的静态信息。
应当知晓,本申请实施例中记载的最新版本的静态信息均为相较于更新之前的静态信息的版本而言,由于静态信息会随时变化,因此,在管理服务节点中每次更新静态信息均为得到一个最新版本的静态信息。
例如,当分布式数据库集群中存在一个数据节点异常(可是节点掉线或者网络隔离掉该节点),且同时集群中正在新增节点。此场景下异常的节点无法感知到新增节点的加入,管理服务节点在推送最新版本的静态信息时无法推送到该数据节点,尝试数次后会主动结束推送任务。通过上述实施例二和实施例三记载的内容,在异常数据节点隔离掉的同时,其他节点会向集群管理服务通知该节点异常,管理服务节点会通过探测机制,周期性的向该节点发起探测任务,当网络恢复或者节点重启拉起时,若是节点被重新拉起的场景下,节点会从管理服务节点中拉取最新版本的静态信息,并通过静态信息版本号校验,获取到最新版本的静态信息,即增量数据,其中,对于异常数据节点而言,执行的动作如下:
异常数据节点会收到管理服务节点的异常探测消息,首先,会更新自身的动态信息版本号,通知管理服务节点该异常数据节点已正常,其次,会通过静态信息版本号的比较,触发主动拉取最新的静态信息,拉取静态信息后会通过校验获取到增量的静态信息,完成集群静态信息同步。
对应于上文实施例的分布式数据库集群的管理方法,图7示出了本申请实施例七提供的分布式数据库集群的管理装置的结构框图,上述管理装置应用于图1中的分布式数据库集群,服务节点可以不止一个,每个服务节点可以同时使用,也可以交替使用,其中,还可以设置一个服务节点可以管理部分的数据节点。为了便于说明,仅示出了与本申请实施例相关的部分。
参见图7,该管理装置包括:
异常通知模块71,用于在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定第二数据节点为异常数据节点,第一数据节点将异常数据节点的异常信息通知给服务节点;
异常探测模块72,用于服务节点根据异常信息,对异常数据节点进行异常探测,并在探测到异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测;
主动拉取模块73,用于异常数据节点在接收到异常探测后,更新自身动态信息得到最新动态信息,并将最新动态信息通知给服务节点,以及将自身静态信息的版本与服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向服务节点主动拉取全局静态信息。
可选的是,服务节点包括管理服务节点,管理装置还包括:
静态信息更新模块,用于管理服务节点对其中的全局静态信息进行更新,得到更新的全局静态信息;
第一静态信息推送模块,用于管理服务节点向N个数据节点中不为异常的数据节点推送更新的全局静态信息。
可选的是,服务节点还包括协调服务节点,管理装置还包括:
第二静态信息推送模块,用于管理服务节点在得到更新的全局静态信息后,向协调服务节点推送更新的全局静态信息。
可选的是,静态信息更新模块,包括:
新增节点单元,用于管理服务节点获取新增数据节点发送的节点元数据;
更新单元,用于根据节点元数据,对管理服务节点中的全局静态信息进行更新,得到更新的全局静态信息。
可选的是,异常探测模块72,包括:
目标确定单元,用于服务节点根据异常信息,确定异常数据节点;
目标探测单元,用于服务节点基于服务节点中的全局静态信息的版本,向异常数据节点发送异常探测消息;
其中,异常数据节点用于根据异常探测消息,得到服务节点中的全局静态信息的版本。
可选的是,异常探测模块72,包括:
版本比较单元,用于服务节点在探测到异常数据节点通知的最新动态信息时,将最新动态信息的版本与服务节点中对应异常数据节点的动态信息的版本进行比较;
探测结束单元,用于若确定最新动态信息的版本为更新的版本,则确定探测成功并结束异常探测;
可选的是,该管理装置还包括:
动态信息更新模块,用于在确定最新动态信息的版本为更新的版本之后,服务节点使用最新动态信息的版本更新服务节点中对应异常数据节点的动态信息的版本。
需要说明的是,上述模块之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
图8为本申请实施例八提供的一种计算机设备的结构示意图。如图8所示,该实施例的计算机设备包括:至少一个处理器(图8中仅示出一个)、存储器以及存储在存储器中并可在至少一个处理器上运行的计算机程序,处理器执行计算机程序时实现上述任意各个分布式数据库集群的管理方法实施例中的步骤。
该计算机设备可包括,但不仅限于,处理器、存储器。本领域技术人员可以理解,图8仅仅是计算机设备的举例,并不构成对计算机设备的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如还可以包括网络接口、显示屏和输入装置等。
所称处理器可以是CPU,该处理器还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器包括可读存储介质、内存储器等,其中,内存储器可以是计算机设备的内存,内存储器为可读存储介质中的操作系统和计算机可读指令的运行提供环境。可读存储介质可以是计算机设备的硬盘,在另一些实施例中也可以是计算机设备的外部存储设备,例如,计算机设备上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡、闪存卡(Flash Card)等。进一步地,存储器还可以既包括计算机设备的内部存储单元也包括外部存储设备。存储器用于存储操作系统、应用程序、引导装载程序(BootLoader)、数据以及其他程序等,该其他程序如计算机程序的程序代码等。存储器还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述装置中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述方法实施例的步骤。其中,计算机程序包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质至少可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
本申请实现上述实施例方法中的全部或部分流程,也可以通过一种计算机程序产品来完成,当计算机程序产品在计算机设备上运行时,使得计算机设备执行时实现可实现上述方法实施例中的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/计算机设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/计算机设备实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种分布式数据库集群的管理方法,其特征在于,所述分布式数据库集群包括N个数据节点和至少一个服务节点,N为大于一的整数,所述管理方法包括:
在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定所述第二数据节点为异常数据节点,所述第一数据节点将所述异常数据节点的异常信息通知给所述服务节点;
所述服务节点根据所述异常信息,对所述异常数据节点进行异常探测,并在探测到所述异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测;
所述异常数据节点在接收到异常探测后,更新自身动态信息得到所述最新动态信息,并将所述最新动态信息通知给所述服务节点,以及将自身静态信息的版本与所述服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向所述服务节点主动拉取所述全局静态信息。
2.根据权利要求1所述的管理方法,其特征在于,所述服务节点包括管理服务节点,所述管理方法还包括:
所述管理服务节点对其中的全局静态信息进行更新,得到更新的全局静态信息;
所述管理服务节点向所述N个数据节点中不为异常的数据节点推送所述更新的全局静态信息。
3.根据权利要求2所述的管理方法,其特征在于,所述服务节点还包括协调服务节点,所述管理方法还包括:
所述管理服务节点在得到所述更新的全局静态信息后,向所述协调服务节点推送所述更新的全局静态信息。
4.根据权利要求2所述的管理方法,其特征在于,所述管理服务节点对其中的全局静态信息进行更新,得到更新的全局静态信息,包括:
所述管理服务节点获取新增数据节点发送的节点元数据;
根据所述节点元数据,对所述管理服务节点中的全局静态信息进行更新,得到所述更新的全局静态信息。
5.根据权利要求1至4任一项所述的管理方法,其特征在于,所述根据所述异常信息,对所述异常数据节点进行异常探测,包括:
所述服务节点根据所述异常信息,确定所述异常数据节点;
所述服务节点基于所述服务节点中的全局静态信息的版本,向所述异常数据节点发送异常探测消息;
其中,所述异常数据节点用于根据所述异常探测消息,得到所述服务节点中的全局静态信息的版本。
6.根据权利要求1至4任一项所述的管理方法,其特征在于,所述在探测到所述异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测,包括:
所述服务节点在探测到所述异常数据节点通知的最新动态信息时,将所述最新动态信息的版本与所述服务节点中对应所述异常数据节点的动态信息的版本进行比较;
若确定所述最新动态信息的版本为更新的版本,则确定探测成功并结束异常探测。
7.根据权利要求6所述的管理方法,其特征在于,在所述确定所述最新动态信息的版本为更新的版本之后,还包括:
所述服务节点使用所述最新动态信息的版本更新所述服务节点中对应所述异常数据节点的动态信息的版本。
8.一种分布式数据库集群的管理装置,其特征在于,所述分布式数据库集群包括N个数据节点和至少一个服务节点,N为大于一的整数,所述管理装置包括:
异常通知模块,用于在任一第一数据节点检测到与其连接的第二数据节点的心跳断链时,确定所述第二数据节点为异常数据节点,所述第一数据节点将所述异常数据节点的异常信息通知给所述服务节点;
异常探测模块,用于所述服务节点根据所述异常信息,对所述异常数据节点进行异常探测,并在探测到所述异常数据节点通知的最新动态信息时,确定探测成功并结束异常探测;
主动拉取模块,用于所述异常数据节点在接收到异常探测后,更新自身动态信息得到所述最新动态信息,并将所述最新动态信息通知给所述服务节点,以及将自身静态信息的版本与所述服务节点中的全局静态信息的版本进行校验,并根据校验的结果判断是否向所述服务节点主动拉取所述全局静态信息。
9.一种计算机设备,其特征在于,所述计算机设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的管理方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311781500.9A CN117857284A (zh) | 2023-12-21 | 2023-12-21 | 分布式数据库集群的管理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311781500.9A CN117857284A (zh) | 2023-12-21 | 2023-12-21 | 分布式数据库集群的管理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117857284A true CN117857284A (zh) | 2024-04-09 |
Family
ID=90547380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311781500.9A Pending CN117857284A (zh) | 2023-12-21 | 2023-12-21 | 分布式数据库集群的管理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117857284A (zh) |
-
2023
- 2023-12-21 CN CN202311781500.9A patent/CN117857284A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10152382B2 (en) | Method and system for monitoring virtual machine cluster | |
CN111049705A (zh) | 一种监控分布式存储系统的方法及装置 | |
CN107480014B (zh) | 一种高可用设备切换方法及装置 | |
US11625315B2 (en) | Software regression recovery via automated detection of problem change lists | |
US9355005B2 (en) | Detection apparatus and detection method | |
US9436539B2 (en) | Synchronized debug information generation | |
CN111124755A (zh) | 集群节点的故障恢复方法、装置、电子设备及存储介质 | |
US11113169B2 (en) | Automatic creation of best known configurations | |
JP6201670B2 (ja) | 判定装置、判定プログラム、及び判定方法 | |
US10795793B1 (en) | Method and system for simulating system failures using domain-specific language constructs | |
CN113360579A (zh) | 数据库高可用处理方法、装置、电子设备及存储介质 | |
CN111338834B (zh) | 数据存储方法和装置 | |
CN109299124B (zh) | 用于更新模型的方法和装置 | |
CN114064435A (zh) | 数据库测试方法、装置、介质与电子设备 | |
CN110879756B (zh) | 协作流程异常处理方法、装置、计算机设备及存储介质 | |
CN117857284A (zh) | 分布式数据库集群的管理方法、装置、设备及介质 | |
US9690639B2 (en) | Failure detecting apparatus and failure detecting method using patterns indicating occurrences of failures | |
CN110968456B (zh) | 分布式存储系统中故障磁盘的处理方法及装置 | |
CN112965791B (zh) | 定时任务检测方法、装置、设备及存储介质 | |
CN112988444B (zh) | 用于服务器集群故障诊断的处理方法、处理装置、及处理设备、用于服务器故障诊断的方法及计算机可读存储介质 | |
CN113703823A (zh) | 一种bmc固件升级方法、装置、电子设备及存储介质 | |
CN110362464B (zh) | 软件分析方法及设备 | |
CN116991623B (zh) | 区块链节点异常恢复方法、装置、电子设备及存储介质 | |
CN113609104B (zh) | 一种部分故障的键值对分布式存储系统访问方法及装置 | |
CN110519393B (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 |