CN112865995A - 分布式主从系统 - Google Patents

分布式主从系统 Download PDF

Info

Publication number
CN112865995A
CN112865995A CN201911185488.9A CN201911185488A CN112865995A CN 112865995 A CN112865995 A CN 112865995A CN 201911185488 A CN201911185488 A CN 201911185488A CN 112865995 A CN112865995 A CN 112865995A
Authority
CN
China
Prior art keywords
node
slave
state
task
election
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.)
Granted
Application number
CN201911185488.9A
Other languages
English (en)
Other versions
CN112865995B (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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili Technology 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN201911185488.9A priority Critical patent/CN112865995B/zh
Publication of CN112865995A publication Critical patent/CN112865995A/zh
Application granted granted Critical
Publication of CN112865995B publication Critical patent/CN112865995B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0668Management of faults, events, alarms or notifications using network fault recovery by dynamic selection of recovery network elements, e.g. replacement by the most appropriate element after failure
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0663Performing the actions predefined by failover planning, e.g. switching to standby network elements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/30Decision processes by autonomous network management units using voting and bidding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1034Reaction to server failures by a load balancer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明提供了一种分布式主从系统。该系统包括多个主节点和多个从节点,工作主节点向冗余主节点发送探活,工作主节点故障时,冗余主节点检测到心跳超时,选举出新的工作主节点;工作主节点将本地日志中未完成的任务条目对应的任务分配至从节点,根据从节点返回的执行进度更新对应的任务状态,在本地日志被修改时,将修改信息携带至探活心跳,同步至冗余主节点;工作主节点还与从节点维持心跳,从节点返回的心跳反馈携带会话标识,在监测到心跳反馈超时,将超时的心跳反馈所属的从节点上未完成的任务分配至其他从节点,实现故障从节点的切换。通过本发明,避免分布式主从系统中第三方依赖产生的节点故障判断准确性降低的问题。

Description

分布式主从系统
技术领域
本发明涉及分布式数据处理技术领域,尤其涉及一种分布式主从系统。
背景技术
分布式主从系统包括至少一个主节点和多个从节点,用户通过界面提交任务到分布式主从系统后,主节点接收任务,并将任务分配至从节点执行,因此,分布式主从系统展现给用户的是一个统一的整体,用户无需关注系统内部主节点和从节点的工作流程,同时,由于分布式主从系统可以把任务分散到众多的从节点上,单个从节点故障时不影响其他从节点的正常运行,因而分布式主从系统的可靠性较高。
在现有技术中,为了进一步提高分布式主从系统的可靠性,当从节点发生故障时,通过在主节点上重新配置,可以把故障从节点上的任务分散到其他从节点上,使得单个从节点故障时任务仍然能够被执行。但是,当从节点发生故障时,任务中断,需要在主节点上重新进行人工配置,不能快速切换到其他从节点上,导致从节点发生故障时,部分任务的响应时间增加。同时,当主节点发生故障时,分布式主从系统的可靠性受到影响。
为了解决上述技术问题,相关技术中提出一种解决方案,在分布式主从系统中设置第三方服务器,主节点和从节点分别与第三方服务器进行通信,当从节点发生故障时,第三方服务器感知到该故障后通知主节点,从而主节点将故障从节点上未完成的任务分配至其他正常的从节点上,实现故障从节点的感知和切换;当工作主节点发生故障时,第三方服务器感知到该故障后通知其他主节点,从而其他主节点能够及时将发生故障工作主节点替换,而成为新的工作主节点,实现故障主节点的感知和切换。
但是,上述解决方案需要引入第三方服务器,增加分布式主从系统物理部署的复杂性,同时,分布式主从系统中主从节点的可靠性需要依赖与第三方服务器之间通信的可靠性,对第三方服务器的依赖性较强,会由于与第三方服务器之间的通信故障出现错误的故障判定,从而降低了故障感知的准确性。
发明内容
本发明的目的是提供一种分布式主从系统,用于解决现有技术中对第三方服务器的依赖性较强而降低故障感知的准确性的技术问题。
为实现上述目的,本发明提供了一种分布式主从系统。
该分布式主从系统包括多个主节点和多个从节点,主节点的状态包括工作状态、休息状态和选举状态,其中:处于工作状态的主节点用于每间隔第一预设时长向处于休息状态的主节点发送第一心跳信息;处于休息状态的主节点用于在检测到第一心跳信息超时时,由休息状态进入选举状态;处于选举状态的主节点用于发送选举请求;处于休息状态的主节点还用于在接收到选举请求时,返回选举投票;处于选举状态的主节点用于在接收到的选举投票的数量大于第一阈值时,由选举状态进入工作状态;处于工作状态的主节点还用于接收客户端发送的任务请求,建立任务请求对应的任务条目,将任务条目写入本地日志,发送会话标识请求至从节点,其中,任务条目包括任务标识和任务状态;从节点用于在接收到会话标识请求时,返回与自身唯一对应的会话标识;处于工作状态的主节点还用于接收会话标识,将会话标识封装至第二心跳信息,并每间隔第二预设时长向从节点发送对应的第二心跳信息;从节点还用于在接收到第二心跳信息时,返回心跳反馈;处于工作状态的主节点还用于将本地日志中未完成的任务条目对应的任务分配至从节点,根据从节点返回的执行进度更新对应的任务状态,并且在监测到心跳反馈超时,将超时的心跳反馈所属的从节点上未完成的任务分配至分布式主从系统中的其他从节点,在本地日志被修改时,将修改信息携带至第一心跳信息;处于休息状态的主节点还用于在接收到修改信息时,根据修改信息修改自身的日志。
进一步地,处于选举状态的主节点还用于在由休息状态进入选举状态之后,发送选举请求之前,将本地日志中最新的任务条目中的任务标识作为检测标识携带至选举请求;处于休息状态的主节点还用于比对检测标识和自身日志中的任务标识,并当自身日志中不包括检测标识,或者自身日志中最新的任务条目中的任务标识与检测标识相同,返回选举投票。
进一步地,各主节点分别维护自身的周期序号;处于选举状态的主节点还用于在由休息状态进入选举状态,发送选举请求之前,将自身的周期序号更新,并将更新后的周期序号作为检测序号携带至选举请求;
处于休息状态的主节点还用于比对检测序号和自身的周期序号,并当自身的周期序号不新于检测序号时,返回选举投票;处于工作状态的主节点还用于在由选举状态进入工作状态后,将被选举信息携带至第一心跳信息;处于休息状态的主节点还用于在接收到被选举信息时,将自身的周期序号更新。
进一步地,主节点的状态还包括预选举状态,处于休息状态的主节点在由休息状态进入选举状态时,先由休息状态进入预选举状态;处于预选举状态的主节点用于发送预选举请求;处于休息状态的主节点还用于在接收到预选举请求时,判断当前是否存在处于工作状态且正常的主节点,若不存在处于工作状态且正常的主节点,返回预选举投票;处于预选举状态的主节点还用于当接收到的预选举投票的数量大于第二阈值时,由预选举状态进入选举状态。
进一步地,处于休息状态的主节点还用于在接收到选举请求时,在一个周期序号内仅能发送一次选举投票,且当接收到两个或两个以上选举请求时,向先发送选举请求的主节点返回选举投票。
进一步地,处于工作状态的主节点还用于在接收客户端发送的任务请求之后,将任务请求对应的任务数据写入数据库,其中,任务数据包括任务标识、任务命令和任务参数;本地日志中的任务条目按顺序排列,处于工作状态的主节点将本地日志中未完成的任务条目对应的任务分配至从节点时,具体执行的步骤包括:查询本地日志中未完成的任务条目;获取多个未完成的任务条目中的任务标识;根据获取到的多个任务标识批量读取数据库中的任务数据;根据获取到的任务数据分配任务至从节点。
进一步地,处于工作状态的主节点根据获取到的任务数据分配任务至从节点时,将任务命令相同的任务分配至同一从节点。
进一步地,从节点还用于在接收到第二心跳信息时,返回包括资源状态信息的心跳反馈;处于工作状态的主节点向从节点分配任务时,执行的步骤包括:根据资源状态信息向从节点分配任务。
进一步地,从节点还用于存储会话标识,在接收到第二心跳信息时,判断第二心跳信息中的会话标识和存储的会话标识是否一致,并当第二心跳信息中的会话标识和存储的会话标识一致时,返回心跳反馈。
进一步地,从节点上配置有主节点的地址信息,从节点还用于根据主节点的地址信息将从节点的地址信息发送至主节点;处于工作状态的主节点还用于在发送会话标识请求至从节点之前,接收从节点的地址信息,根据从节点的地址信息与从节点建立连接。
进一步地,从节点还用于在第二预设时长内没有接受到第二心跳消息时,保存任务状态信息至外部存储装置,并启动自行销毁程序。
本发明提供的分布式主从系统,主节点具有工作状态、休息状态和选举状态,处于工作状态的主节点作为工作主节点,每间隔预设时长向处于休息状态的主节点发送第一心跳信息,处于休息状态的主节点作为冗余主节点,通过监测第一心跳信息来监测工作主节点的是否发生故障;同时,工作主节点在工作过程中,接收客户端发送的任务请求,并建立对应的任务条目写入本地日志。在分配任务时,将本地日志中未完成的任务条目对应的任务分配至从节点,并根据从节点返回的执行进度更新对应的任务状态,当本地日志被修改时,将修改信息携带至上述第一心跳信息,通过第一心跳信息,使得冗余主节点能够根据修改信息修改自身的日志,也即同步工作主节点的日志。当冗余主节点监测到第一心跳信息超时时,当前工作主节点发生故障,该冗余主节点由休息状态进入选举状态,通过发送选举请求以请求被选举为新的工作主节点,当接收到的选举投票的数量大于第一阈值时,可被选举为新的工作主节点,此时由选举状态进入工作状态,成为新的工作主节点,实现了工作主节点的切换。新的工作主节点也可接收客户端发送的任务请求,并且,在分配任务时,将本地日志中未完成的任务条目对应的任务分配至从节点,该新的工作主节点的本地日志,包括前一个工作主节点,也即被替换的故障主节点的日志,也就是说,在工作主节点发生故障时,不仅实现工作主节点的切换,而且能够同步工作主节点的日志。并且,从中可以看出,在故障主节点的监测与切换,以及日志的同步过程中,无需通过第三方服务器监测和反馈,从而避免第三方依赖对故障主节点感知准确性的影响。工作主节点在分配任务前,向从节点发送会话标识请求,以获得与从节点一一对应的会话标识,然后基于该会话标识,封装与从节点对应的第二心跳信息,并把该第二心跳信息发送至从节点,从节点接收到该第二心跳信息后,将包括会话标识的心跳反馈返回至主节点,主节点基于心跳反馈是否超时来实现对从节点的探活,如果某心跳反馈超时,基于该心跳反馈的会话标识可确定哪一个从节点发生故障,进而将该从节点上未完成的任务分配至其他从节点,实现了故障从节点的及时感知和切换,更重要的是,在上述从节点的故障感知和切换流程中,无需依赖第三方服务器,避免第三方依赖对故障从节点感知准确性的影响。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提供的分布式主从系统的框图;以及
图2为本发明实施例提供的分布式主从系统的工作流程图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种分布式主从系统,在本发明中,分布式主从系统包括多个主节点和多个从节点,主节点的状态包括工作状态、休息状态和选举状态,其中,主节点处于工作状态时,又称工作主节点,能够接收客户端的任务请求,将任务分配至从节点执行,并接收执行结果,反馈至客户端;主节点处于休息状态时,作为冗余主节点;当需要进行工作主节点转换时,主节点由休息状态进入选举状态,在选举状态选举产生新的工作主节点,被选为工作主节点的主节点由选举状态进入工作状态,其他未被选为工作主节点的主节点保持休息状态或由选举状态返回休息状态,其中,处于工作状态的主节点每间隔预设时长向处于休息状态的主节点发送第一心跳信息,也即,工作主节点每间隔预设时长向冗余主节点发送第一心跳信息,基于此,在本发明提供的分布式主从系统中,正常状态下,工作主节点每间隔预设时长向冗余主节点发送第一心跳信息,冗余主节点监测第一心跳信息,当某一冗余主节点监测到第一心跳信息超时,也即无法在该预设时长内接收到第一心跳信息时,表明工作主节点故障,需要产生新的工作主节点,此时,该主节点由休息状态进入选举状态,并向分布式主从系统中的其他主节点发送选举请求,对于接收到选举请求的主节点,可向发送选举请求的此主节点返回选举投票,当接收到的选举投票的数量大于一定数量时,该主节点被选举为新的工作主节点,由选举状态进入工作状态,接入工作状态后,接收客户端发送的任务请求,并建立任务请求对应的任务条目,将任务条目写入本地日志,同时,针对本地日志中未完成的任务条目,将对应的任务分配至从节点,相应地,根据从节点返回的执行进度更新对应的任务状态,在上述过程中,当本地日志被修改时,包括写入新的任务条目以及对任务条目中任务状态进行修改时,均会将修改信息携带至第一心跳信息,在将第一心跳信息发送至其他主节点的同时,将修改同步至其他主节点,而接收到修改信息的主节点,根据修改信息修改自身的日志,使得冗余主节点能够同步到工作主节点分配任务的进度和任务的执行状态,因此,当一个工作主节点出现故障被替换时,重新选举出的工作主节点的本地日志与故障主节点的本地日志同步,若故障主节点的本地日志中包括未完成的任务条目,该未完成的任务条目会保留在重新选举出的工作主节点的本地日志中,因而,新的工作主节点在针对本地日志中未完成的任务条目进行任务分配时,可将故障主节点上,也即前一个工作主节点上未完成的任务条目继续任务分配。从中可以看出,当处于工作状态的工作主节点发生故障时,其他主节点能够感知到该故障并及时产生新的工作主节点,实现了故障主节点的替换,同时,能够保证工作主节点上任务信息的延续性,提升工作主节点任务的可靠性,更重要的是,与现有技术相比,无需通过第三方服务器监测和反馈,避免第三方依赖对故障主节点感知准确性的影响。
工作主节点在向从节点分配任务之前,首先发送会话标识请求至从节点,从节点在接收到会话标识请求时,向主节点返回与自身唯一对应的会话标识,主节点在接收到会话标识后,将该会话标识封装至第二心跳信息,每间隔预设时长向从节点发送对应的第二心跳信息,相应地,从节点用于在接收到第二心跳信息时,返回心跳反馈,该心跳反馈包括会话标识,主、从节点之间维持该预设时长间隔心跳的同时,向从节点分配任务,同时,主节点若监测到心跳反馈超时,将超时的心跳反馈所属的从节点上未完成的任务分配至分布式主从系统中的其他从节点,从中可以看出,本发明提供的分布式主从系统,主节点通过与从节点之间维持心跳来监测从节点,并且通过会话标识来区别不同从节点的第二心跳信息,因而,当监测到一个从节点的心跳反馈超时,通过心跳反馈中的会话标识确定发生故障的从节点,此时,无论该从节点自身发生故障还是与主节点之间的通信链路发送故障,主节点均无法再分配任务至该从节点,也无法接收该从节点的反馈,此时将该从节点上未完成的任务分配至分布式主从系统中的其他从节点,实现了故障从节点的及时切换,保证任务的正常执行,同时,与现有技术相比,无需通过第三方服务器反馈,避免第三方依赖对故障从节点感知准确性的影响。
关于本发明提供的分布式主从系统的具体实施方式,将在下文中详细描述。
在一种实施例中,本发明实施例提供了一种分布式主从系统,该分布式主从系统包括多个主节点和多个从节点,主节点的状态包括工作状态、休息状态和选举状态,一个主节点可在三个状态之间转换。通过该实施例提供的分布式主从系统,当处于工作状态的主节点发生故障时,处于休息状态的主节点能够及时感知,并由休息状态进入选举状态,并在被选举为工作节点后,由选举状态进入工作状态,也即,替换了发生故障的主节点,实现了分布式主从系统中主节点故障时,由故障主节点自动切换为正常主节点,并保证主节点上任务的可靠性,同时,无需通过第三方服务器监测和反馈,避免第三方依赖对故障主节点感知准确性的影响,当被分配任务的从节点发生故障时,处于工作状态的主节点能够及时感知并将该从节点上未完成的任务转换至其他从节点,实现了分布式主从系统中从节点故障时,由故障从节点自动切换为正常从节点,同时,无需通过第三方服务器反馈,避免第三方依赖对故障从节点感知准确性的影响。
具体地,图1为本发明实施例提供的分布式主从系统的框图,如图1所示,该分布式主从系统包括多个主节点101和多个从节点102,图2为本发明实施例提供的分布式主从系统的工作流程图,如图2所示:
对应步骤S201:处于工作状态的主节点(也即工作主节点)用于每间隔第一预设时长向处于休息状态的主节点发送第一心跳信息。
对应步骤S202:处于休息状态的主节点(也即冗余主节点)用于在检测到第一心跳信息超时时,由休息状态进入选举状态。当工作主节点发生故障时,冗余主节点会无法按时接收到第一心跳信息或接收不到第一心跳信息,因此,对于冗余主节点,能够通过监测该第一心跳信息是否超时,来监测工作主节点是否出现故障。当一个冗余主节点监测到第一心跳信息超时时,该冗余主节点由休息状态进入选举状态。
可选地,在系统启动时,所有主节点均处于休息状态,系统中没有主节点处于工作状态,也即系统还没有产生工作主节点,配置各主节点可在某一时长范围内,随机确定一时长作为第一预设时长,当某一主节点在第一预设时长内没有监测到第一心跳信息时,也即监测到第一心跳信息超时时,该主节点率先由休息状态进入到选举状态。可选地,在系统正常工作的过程中,部分主节点处于休息状态为冗余主节点,系统中某主节点处于工作状态为工作主节点,当该工作主节点发生故障时,冗余主节点会监测到第一心跳信息超时,当某一主节点在其预设时长内没有监测到第一心跳信息时,也即监测到第一心跳信息超时时,该冗余主节点由休息状态进入到选举状态。
对应步骤S203:处于选举状态的主节点用于发送选举请求。主节点进入选举状态后,发送选举请求,可向分布式主从系统中的其他主节点发送,也可向自己发送,该选举请求用于请求选举投票。
对应步骤S204:处于休息状态的主节点还用于在接收到选举请求时,返回选举投票。可选地,可设置投票规则,接收到选举请求的主节点进行投票规则的判断,在满足投票规则时,返回选举投票,在不满足投票规则时,不返回选举投票。
对应步骤S205:处于选举状态的主节点用于在接收到的选举投票的数量大于第一阈值时,由选举状态进入工作状态。处于选举状态的主节点发送选举请求后,可接收到各主节点发送的选举投票,当接收到的选举投票的数量达到预定数量,也即大于第一阈值时,该主节点被选举为工作主节点,因而由选举状态进入工作状态。可选地,第一阈值可为分布式主从系统中主节点数量的一半,当一个主节点接收到的选举投票的数量过半时,也即达到分布式主从系统中主节点总数量的一半时,该主节点被选举为工作主节点。
对应步骤S206:处于工作状态的主节点还用于接收客户端发送的任务请求,建立任务请求对应的任务条目,将任务条目写入本地日志。主节点进入工作状态成为工作主节点后,可接收客户端发送的任务请求,该任务请求可包括任务标识、任务参数以及任务命令等信息,建立的任务条目包括任务标识和任务状态,处于工作状态的主节点接收到任务请求后,建立任务请求所对应的任务条目,一个任务请求可对应一个任务条目,建立对应任务请求的任务条目后,将任务条目写入本地日志,该本地日志也等同于状态机,维护任务状态。
对应步骤S207:处于工作状态的主节点还用于发送会话标识请求至从节点。主节点处于工作状态时,能够接收客户端发送的任务请求,并将任务请求对应的任务分配至从节点执行。在向从节点分配任务之前,首先获取会话标识,也即向从节点发送会话标识请求。
对应步骤S208:从节点用于在接收到会话标识请求时,返回与自身唯一对应的会话标识。例如,第一从节点接收到会话标识请求后,生成与第一从节点对应的第一会话标识,并返回至主节点,第二从节点接收到会话标识请求后,生成与第二从节点对应的第二会话标识,并返回至主节点。
对应步骤S209:处于工作状态的主节点还用于接收会话标识,将会话标识封装至第二心跳信息,并每间隔第二预设时长向从节点发送对应的第二心跳信息。主节点接收各个从节点返回的会话标识,例如,接收第一从节点返回的第一会话标识和第二从节点返回的第二会话标识。接收到会话标识后,将会话标识封装在第二心跳信息中,针对不同的会话标识,封装在对应从节点的心跳信息中,例如,将第一会话标识封装在对应第一从节点的第二心跳信息A中,将第二会话标识封装在对应第二从节点的第二心跳信息B中。生成第二心跳信息后,主节点启动心跳机制,在其处于工作状态下,每间隔第二预定时长,定时向从节点发送探活心跳,将对应的第二心跳信息发送至从节点。主节点可间隔不同时长向不同从节点发送第二心跳信息,也可间隔相同时长向不同从节点发送第二心跳信息,例如,主节点间隔第二预定时长X将第二心跳信息A发送至第一从节点,间隔第二预定时长Y将第二心跳信息B发送至第二从节点。
对应步骤S210:从节点还用于在接收到第二心跳信息时,返回心跳反馈。从节点在接收到心跳信息后,向主节点返回应答,也即返回包括会话标识的心跳反馈。
对应步骤S211:处于工作状态的主节点还用于将本地日志中未完成的任务条目对应的任务分配至从节点,根据从节点返回的执行进度更新对应的任务状态。工作主节点在进行任务分配时,将本地日志中未完成的任务条目对应的任务分配至从节点,从节点接收到被分配的任务后,执行任务,并将执行进度和执行结果反馈至工作主节点,以供工作主节点更新对应的任务状态,以及在需要时,将执行结果返回至客户端,以响应任务请求。
对应步骤S212:处于工作状态的主节点还用于在监测到心跳反馈超时,将超时的心跳反馈所属的从节点上未完成的任务分配至分布式主从系统中的其他从节点。主节点对从节点基于心跳探活后,监测心跳反馈是否超时,其中,心跳反馈包括会话标识,基于会话标识能够得知超时的心跳反馈属于哪个从节点。当确定某一个从节点的心跳反馈超时,表征该从节点处于无法与主节点正常通信的异常状态,该异常状态可能是从节点自身故障,也可能是该从节点与主节点之间的通信故障,但无论是哪种故障,该从节点均无法接收主节点分配的任务,也无法向主节点反馈执行结果,对于该类处于故障状态的从节点,将其上未完成的任务分配至分布式主从系统中的其他从节点。其中,从节点在执行任务的过程中,将执行进度返回至主节点,主节点根据接收到的执行进度实时更改本地日志。基于此,当一个从节点处于故障状态时,通过主节点上维护的对应该从节点的本地日志,可查询到该从节点上未完成的任务,此时,将该任务分配至分布式主从系统中的其他从节点,实现任务由故障从节点切换至其他正常的从节点,也即实现了故障从节点的感知和切换。例如,主节点监测到心跳反馈a超时,由于心跳反馈a包括第一会话标识,表征第一从节点处于故障状态,此时将第一从节点上未完成的任务重新分配至第二从节点。
对应步骤S213:处于工作状态的主节点还用于在本地日志被修改时,将修改信息携带至第一心跳信息。工作主节点在将新的任务条目写入本地日志时、在更新本地日志中某任务条目的任务状态时,均是对本地日志的修改,而当本地日志被修改时,将修改信息携带至第一心跳信息,发送至冗余主节点。
对应步骤S214:处于休息状态的主节点还用于在接收到修改信息时,根据修改信息修改自身的日志。冗余主节点接收到第一心跳信息后可解析出修改信息,进而能够根据修改信息修改自身的日志,将工作主节点的日志同步至冗余主节点。
采用该实施例提供的分布式主从系统,主节点具有工作状态、休息状态和选举状态,处于工作状态的主节点作为工作主节点,每间隔预设时长向处于休息状态的主节点发送第一心跳信息,处于休息状态的主节点作为冗余主节点,通过监测第一心跳信息来监测工作主节点的是否发生故障;同时,工作主节点在工作过程中,接收客户端发送的任务请求,并建立对应的任务条目写入本地日志。在分配任务时,将本地日志中未完成的任务条目对应的任务分配至从节点,并根据从节点返回的执行进度更新对应的任务状态,当本地日志被修改时,将修改信息携带至上述第一心跳信息,通过第一心跳信息,使得冗余主节点能够根据修改信息修改自身的日志,也即同步工作主节点的日志。当冗余主节点监测到第一心跳信息超时时,当前工作主节点发生故障,该冗余主节点由休息状态进入选举状态,通过发送选举请求以请求被选举为新的工作主节点,当接收到的选举投票的数量大于第一阈值时,可被选举为新的工作主节点,此时由选举状态进入工作状态,成为新的工作主节点,实现了工作主节点的切换。新的工作主节点也可接收客户端发送的任务请求,并且,在分配任务时,将本地日志中未完成的任务条目对应的任务分配至从节点,该新的工作主节点的本地日志,包括前一个工作主节点,也即被替换的故障主节点的日志,也就是说,在工作主节点发生故障时,不仅实现工作主节点的切换,而且能够同步工作主节点的日志。并且,从中可以看出,在故障主节点的监测与切换,以及日志的同步过程中,无需通过第三方服务器监测和反馈,从而避免第三方依赖对故障主节点感知准确性的影响。工作主节点在分配任务前,向从节点发送会话标识请求,以获得与从节点一一对应的会话标识,然后基于该会话标识,封装与从节点对应的第二心跳信息,并把该第二心跳信息发送至从节点,从节点接收到该第二心跳信息后,将包括会话标识的心跳反馈返回至主节点,主节点基于心跳反馈是否超时来实现对从节点的探活,如果某心跳反馈超时,基于该心跳反馈的会话标识可确定哪一个从节点发生故障,进而将该从节点上未完成的任务分配至其他从节点,实现了故障从节点的及时感知和切换,更重要的是,在上述从节点的故障感知和切换流程中,无需依赖第三方服务器,避免第三方依赖对故障从节点感知准确性的影响。
可选地,在一种实施例中,处于选举状态的主节点还用于在由休息状态进入选举状态之后,发送选举请求之前,将本地日志中最新的任务条目中的任务标识作为检测标识携带至选举请求;处于休息状态的主节点还用于比对检测标识和自身日志中的任务标识,并当自身日志中不包括检测标识,或者自身日志中最新的任务条目中的任务标识与检测标识相同,返回选举投票。
具体地,冗余主节点由休息状态进入选举状态后,查询本地日志中最新的任务条目的任务标识,将该任务标识作为检测标识携带至选举请求,接收到选举请求的主节点,将检测标识与自身日志中的任务标识进行比对,如果自身日志中不包括该检测标识,表示发送选举请求的主节点的本地日志的更新状况超前于接收到选举请求的主节点的更新状况;如果自身日志中最新的任务条目中的任务标识与检测标识相同,表示发送选举请求的主节点的本地日志的更新状况与接收到选举请求的主节点的更新状况一致;如果自身日志中非最新的任务条目中的任务标识与检测标识相同,表示发送选举请求的主节点的本地日志的更新状况滞后于接收到选举请求的主节点的更新状况,综上,接收到选举请求的主节点,通过将检测标识与自身日志中的任务标识进行比对,能够确定发送选举请求的主节点的本地日志的更新状况与其自身日志的更新状况的关系,在自身日志中不包括检测标识,或者自身日志中最新的任务条目中的任务标识与检测标识相同时返回选举投票,也即避免向本地日志更新状况滞后于自身日志更新状况的主节点返回选举投票。
采用该实施例提供的分布式主从系统,处于选举状态的主节点将本地日志中最新的任务条目的任务标识作为检测标识携带至选举请求,使得接收到选举请求的主节点,能够判断自身日志更新状况和发送选举请求的主节点的本地日志的更新状况来确定是否返回选举投票,避免选举出的新的工作主节点上的本地日志滞后投出选举投票的主节点的日志信息。
可选地,在一种实施例中,各主节点分别维护自身的周期序号;处于选举状态的主节点还用于在由休息状态进入选举状态,发送选举请求之前,将自身的周期序号更新,并将更新后的周期序号作为检测序号携带至选举请求;处于休息状态的主节点还用于比对检测序号和自身的周期序号,并当自身的周期序号不新于检测序号时,返回选举投票;处于工作状态的主节点还用于在由选举状态进入工作状态后,将被选举信息携带至第一心跳信息;处于休息状态的主节点还用于在接收到被选举信息时,将自身的周期序号更新。
具体地,将主节点处于选举状态和工作状态的时期作为一个周期,各主节点均维护有周期序号,当主节点由休息状态进入选举状态时,在发送选举请求之前,先将自身的周期序号更新,例如,周期序号为数字时,可通过增加数字来更新周期序号。更新周期序号后,将更新后的周期序号作为检测序号,携带至选举请求,因此,接收到选举请求的主节点,同时可获得检测序号,进一步可通过检测序号来判断是否返回选举投票,具体地,将检测序号和自身的周期序号进行比对,当自身的周期序号不新于检测序号时(包括比检测序号旧以及与检测序号相同),返回选举投票,如果自身的周期序号新于检测序号,则不返回选举投票。处于选举状态的主节点接收到的选举投票的数量大于第一阈值时,该主节点被选举为工作主节点,此时由选举状态进入工作状态,将被选举信息携带至心跳信息,通知其他主节点,已产生新的工作主节点,接收到被选举信息的主节点获知新的工作主节点出现,此时也将自身的周期序号更新,统一进入新的周期。
采用该实施例提供的分布式主从系统,处于选举状态的主节点首先更新自身周期序号,并将更新后的周期序号为作检测序号携带至选举请求,使得接收到选举请求的主节点,能够判断自身周期序号和发送选举请求的主节点的周期序号的顺序来确定是否返回选举投票,避免选举出的新的工作主节点的周期序号滞后投出选举投票的主节点的周期序号。对于主节点的周期序号,自己进入选举状态或者其他主节点被选举为新的工作主节点,会触发周期序号的更新,因此,周期序号的顺序能够表征主节点的活跃性,避免选举出的新的工作主节点的周期序号滞后投出选举投票的主节点的周期序号,也即避免将活跃性低的主节点选举为工作主节点。此外,接收到选举请求的主节点,通过检测序号和检测标识判断是否返回选举投票,能够减少系统中同时选举出两个或两个以上工作主节点的概率。
可选地,在一种实施例中,主节点的状态还包括预选举状态,处于休息状态的主节点在由休息状态进入选举状态时,先由休息状态进入预选举状态;处于预选举状态的主节点用于发送预选举请求;处于休息状态的主节点还用于在接收到预选举请求时,判断当前是否存在处于工作状态且正常的主节点,若不存在处于工作状态且正常的主节点,返回预选举投票;处于预选举状态的主节点还用于当接收到的预选举投票的数量大于第二阈值时,由预选举状态进入选举状态。
具体地,当一个进入选举状态的主节点出现网络分区问题,无法与其他主节点正常通信时,其反复进入选举状态,进而导致其维护的周期序号反复更新,此时,当某一时刻其与其他主节点的通信正常,将携带检测序号的选举请求发送至冗余主节点后,该冗余主节点的周期序号大概率会不新于检测序号,因而会返回选举投票,此时,被选举出新的工作主节点实质上是具有网络问题的主节点。为了避免该情况的发生,设置主节点的状态还包括预选举状态,主节点在由休息状态进入选举状态时,首先由休息状态进入预选举状态,并发送预选举请求,对于接收到预选举请求的主节点,先判断当前是否存在处于工作状态且正常的主节点,例如,通过监测心跳信息来进行判断,如果心跳信息正常,则表明当前存在处于工作状态且正常的主节点,此时不返回预选举投票,若不存在处于工作状态且正常的主节点,才返回预选举投票,当接收到的预选举投票的数量大于一定数量时,也即大于第二阈值时,由预选举状态进入选举状态,然后发送选举请求。其中,第二阈值可为分布式主从系统中主节点数量的一半。
采用该实施例提供的分布式主从系统,处于休息状态的主节点进入选举状态时,经过预选举状态,先发送预选举请求,接收到预选举请求的主节点先判断当前持否存在正常工作的主节点,如果存在,表明发送预选举请求的主节点自身存在问题,此时不返回预选举投票,仅当不存在正常工作的主节点,才返回预选举投票,当接收到的预选举投票的数量满足要求,再由预选举状态进入选举状态,减小冗余主节点由于自身问题而发起新的选举的概率。
可选地,在一种实施例中,处于休息状态的主节点还用于在接收到选举请求时,在一个周期序号内仅能发送一次选举投票,且当接收到两个或两个以上选举请求时,向先发送选举请求的主节点返回选举投票。
具体地,接收到选举请求的主节点在确定是否返回选举投票时,遵循一个周期只投一次和先到先投的原则,其中,各原则的优先权可进行配置。
采用该实施例提供的分布式主从系统,通过上述投票原则,能够降低两个或两个以上主节点被选举为工作主节点的概率。
可选地,在一种实施例中,处于工作状态的主节点还用于在接收客户端发送的任务请求之后,将任务请求对应的任务数据写入数据库,其中,任务数据包括任务标识、任务命令和任务参数;本地日志中的任务条目按顺序排列,处于工作状态的主节点将本地日志中未完成的任务条目对应的任务分配至从节点时,具体执行的步骤包括:查询本地日志中未完成的任务条目;获取多个未完成的任务条目中的任务标识;根据获取到的多个任务标识批量读取数据库中的任务数据;根据获取到的任务数据分配任务至从节点。
具体地,在接收到任务请求后,将任务数据写入数据库,本地日志的任务条目中设置任务标识和任务状态,而不设置任务命令和任务参数等,因此,工作主节点对本地日志进行修改时不需要涉及任务命令和任务参数等的修改,减少修改信息的数据量,有利于将修改信息同步至其他冗余主节点。工作主节点本地日志中的任务条目按顺序排列,在将本地日志中未完成的任务条目对应的任务分配至从节点时,首先在本地日志中,根据任务条目中的任务状态确定出未完成的任务,然后批量获取未完成任务的任务标识,根据这些任务标识在数据库中获取对应的任务数据,最终根据获取到的任务数据批量分配任务至从节点。
采用该实施例提供的分布式主从系统,一方面,任务命令和任务参数等任务数据写入数据库而不设置于本地日志中,能够减少工作主节点向冗余主节点同步修改信息时的数据量,另一方面,将任务数据设置于数据库中,通过批量获取和批量分配来提升任务分配的效率,减少访问数据库接口的压力。
可选地,在一种实施例中,处于工作状态的主节点根据获取到的任务数据分配任务至从节点时,将任务命令相同的任务分配至同一从节点。
采用该实施例提供的分布式主从系统,将任务命令相同的任务分配至同一从节点,能够使得从节点批量执行相同的任务命令,提升从节点执行任务的速度。
可选地,在一种实施例中,从节点还用于在接收到第二心跳信息时,返回包括资源状态信息的心跳反馈;处于工作状态的主节点向从节点分配任务时,执行的步骤包括:根据资源状态信息向从节点分配任务。
具体地,从节点在接收到心跳信息之后,获取自身的资源状态信息,并将获取到的资源状态信息返回至主节点,从而主节点在进行任务分配时,能够根据资源状态信息向从节点分配任务。同时,从节点向主节点返回资源状态信息时,通过心跳反馈携带资源状态信息,一方面,基于主从节点之间维持的每间隔预定时长的心跳,从节点能够持续且实时将资源状态信息返回至主节点,另一方面,无需额外占用主从节点之间的通信资源返回资源状态信息。
可选地,接收到心跳信息的从节点,分别将自身的资源状态信息返回至主节点,以使主节点能够统筹多个从节点的资源状态信息,将接收到的任务分配至适合的从节点上。
进一步可选地,资源状态信息包括至少两种资源的使用信息,例如CPU资源的使用信息和内存资源的使用信息。每个从节点接收到心跳信息后,将自身CPU资源的使用信息、内存资源的使用信息和已运行的进程数返回至主节点。不同类型的任务运行时所消耗的主要资源不同,例如,对于mr、hivesql、shell和email等类型的任务而言,mr和shell这两种类型的任务所消耗的主要资源为内存资源,hivesql和email这两种类型的任务所消耗的主要资源为CPU资源。主节点根据待分配任务的类型确定待分配任务的资源类型;在接收到的各个从节点的已运行的进程数中,查找已运行的进程数小于预定进程数的若干从节点,根据若干从节点对应的资源使用信息,确定待分配任务的资源类型消耗最少的一个从节点。具体地,待分配任务的类型为mr或shell时,确定待分配任务的资源类型为内存资源,在查找到已运行的进程数小于预定进程数的多个从节点中,选取内存资源消耗最少的一个从节点;待分配任务的类型为hivesql或email时,确定待分配任务的资源类型为CPU资源,在查找到已运行的进程数小于预定进程数的多个从节点中,选取CPU资源消耗最少的一个从节点。
进一步可选地,主节点通过界面接收到客户端提交的任务后,对任务进行分配时,可同时考虑任务的执行特性,例如,当任务为独占执行的任务时,将任务分配至一个从节点即可,当任务为包括多个子任务的并行执行的任务时,将各个子任务分别分配至不同的从节点执行。
可选地,在一种实施例中,从节点还用于存储会话标识,在接收到第二心跳信息时,判断第二心跳信息中的会话标识和存储的会话标识是否一致,并当第二心跳信息中的会话标识和存储的会话标识一致时,返回心跳反馈。
具体地,从节点生成唯一会话标识后,一方面返回至主节点,另一方面,将会话标识存储。当接收到主节点发送的心跳信息后,将心跳信息中的会话标识与存储的会话标识进行比对,当二者一致时,才将心跳反馈返回至主节点。
采用该实施例提供的分布式主从系统,从节点仅当接收到的心跳信息中的会话标识与存储的会话标识一致时,返回心跳反馈,避免对错误的心跳信息进行不必要的反馈而造成通信资源占用,而影响到对正确心跳信息的正常反馈。
可选地,在一种实施例中,从节点上配置有主节点的地址信息,从节点还用于根据主节点的地址信息将从节点的地址信息发送至主节点;处于工作状态的主节点还用于在发送会话标识请求至从节点之前,接收从节点的地址信息,根据从节点的地址信息与从节点建立连接。
具体地,将分布式主从系统中主节点的地址信息配置在从节点上,系统启动后,从节点将自身的地址信息按照主节点的地址信息进行发送,从而将从节点的地址信息发送至主节点,主节点接收从节点的地址信息。主节点进入工作状态后,通过从节点的地址信息主动与从节点进行会话连接,主从节点在建立连接之后,主节点能够向从节点发送会话标识请求。
采用该实施例提供的分布式主从系统,将主节点的地址信息配置在从节点上,从而主从节点之间建立连接时也无需经过第三方服务器,从而简化了分布式主从系统的物理部署。
可选地,在一种实施例中,从节点还用于在第二预设时长内没有接受到第二心跳消息时,保存任务状态信息至外部存储装置,并启动自行销毁程序。
具体地,当主节点与某一从节点之间的通信发生故障时,通过上文可以得到,主节点会监测到该从节点的心跳反馈超时,此时,将该从节点上未执行完成的任务分配至其他从节点,而在一种情况下,当该从节点自身仍处于可执行任务的状态时,如果该从节点仍然继续执行任务,仅仅是断开与主节点的通信,那么该从节点继续执行的任务,与被分配至其他从节点上被其他从节点执行的任务之间,会出现任务冲突,为了避免这种冲突,从节点也对心跳信息进行监测,当监测到在预设时长内没有接收到心跳信息,也即心跳信息超时时,启动自行销毁程序,不再执行任务,即可避免任务冲突。同时,造成心跳信息超时的原因除了上述主节点与该从节点之间的通信发生故障之外,也可能是主节点故障,在该实施例中,启动自行销毁程序之前,将任务状态信息保存至外部存储装置,从而新的主节点进入工作状态后,能够通过外部存储装置任务状态信息,避免从节点自行销毁程序产生的任务状态丢失,提升任务执行的可靠性。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (11)

1.一种分布式主从系统,其特征在于,所述分布式主从系统包括多个主节点和多个从节点,所述主节点的状态包括工作状态、休息状态和选举状态,其中:
处于所述工作状态的主节点用于每间隔第一预设时长向处于所述休息状态的主节点发送第一心跳信息;
处于所述休息状态的主节点用于在检测到所述第一心跳信息超时时,由所述休息状态进入所述选举状态;
处于所述选举状态的主节点用于发送选举请求;
处于所述休息状态的主节点还用于在接收到所述选举请求时,返回选举投票;
处于所述选举状态的主节点用于在接收到的所述选举投票的数量大于第一阈值时,由所述选举状态进入所述工作状态;
处于所述工作状态的主节点还用于接收客户端发送的任务请求,建立所述任务请求对应的任务条目,将所述任务条目写入所述本地日志,发送会话标识请求至所述从节点,其中,所述任务条目包括任务标识和任务状态;
所述从节点用于在接收到所述会话标识请求时,返回与自身唯一对应的会话标识;
处于所述工作状态的主节点还用于接收所述会话标识,将所述会话标识封装至第二心跳信息,并每间隔第二预设时长向所述从节点发送对应的所述第二心跳信息;
所述从节点还用于在接收到所述第二心跳信息时,返回心跳反馈;
处于所述工作状态的主节点还用于将所述本地日志中未完成的所述任务条目对应的任务分配至所述从节点,根据所述从节点返回的执行进度更新对应的所述任务状态,并且在监测到所述心跳反馈超时,将超时的所述心跳反馈所属的所述从节点上未完成的任务分配至所述分布式主从系统中的其他从节点,在所述本地日志被修改时,将修改信息携带至所述第一心跳信息;
处于所述休息状态的主节点还用于在接收到所述修改信息时,根据所述修改信息修改自身的日志。
2.根据权利要求1所述的分布式主从系统,其特征在于,
处于所述选举状态的主节点还用于在由所述休息状态进入所述选举状态之后,发送选举请求之前,将所述本地日志中最新的所述任务条目中的任务标识作为检测标识携带至所述选举请求;
处于所述休息状态的主节点还用于比对所述检测标识和自身日志中的任务标识,并当自身日志中不包括所述检测标识,或者自身日志中最新的所述任务条目中的任务标识与所述检测标识相同,返回所述选举投票。
3.根据权利要求1所述的分布式主从系统,其特征在于,
各所述主节点分别维护自身的周期序号;
处于所述选举状态的主节点还用于在由所述休息状态进入所述选举状态,发送选举请求之前,将自身的周期序号更新,并将更新后的所述周期序号作为检测序号携带至所述选举请求;
处于所述休息状态的主节点还用于比对所述检测序号和自身的周期序号,并当自身的周期序号不新于所述检测序号时,返回所述选举投票;
处于所述工作状态的主节点还用于在由所述选举状态进入所述工作状态后,将被选举信息携带至所述第一心跳信息;
处于所述休息状态的主节点还用于在接收到所述被选举信息时,将自身的周期序号更新。
4.根据权利要求3所述的分布式主从系统,其特征在于,
所述主节点的状态还包括预选举状态,处于所述休息状态的主节点在由所述休息状态进入所述选举状态时,先由所述休息状态进入所述预选举状态;
处于所述预选举状态的主节点用于发送预选举请求;
处于所述休息状态的主节点还用于在接收到所述预选举请求时,判断当前是否存在处于所述工作状态且正常的主节点,若不存在处于所述工作状态且正常的主节点,返回预选举投票;
处于所述预选举状态的主节点还用于当接收到的所述预选举投票的数量大于第二阈值时,由所述预选举状态进入所述选举状态。
5.根据权利要求3所述的分布式主从系统,其特征在于,
处于所述休息状态的主节点还用于在接收到所述选举请求时,在一个所述周期序号内仅能发送一次所述选举投票,且当接收到两个或两个以上所述选举请求时,向先发送所述选举请求的主节点返回所述选举投票。
6.根据权利要求1所述的分布式主从系统,其特征在于,
处于所述工作状态的主节点还用于在接收客户端发送的任务请求之后,将所述任务请求对应的任务数据写入数据库,其中,所述任务数据包括所述任务标识、任务命令和任务参数;
所述本地日志中的所述任务条目按顺序排列,处于所述工作状态的主节点将所述本地日志中未完成的所述任务条目对应的任务分配至所述从节点时,具体执行的步骤包括:查询所述本地日志中未完成的所述任务条目;获取多个未完成的所述任务条目中的任务标识;根据获取到的多个所述任务标识批量读取所述数据库中的任务数据;根据获取到的所述任务数据分配任务至所述从节点。
7.根据权利要求6所述的分布式主从系统,其特征在于,处于所述工作状态的主节点根据获取到的所述任务数据分配任务至所述从节点时,将任务命令相同的任务分配至同一从节点。
8.根据权利要求1所述的分布式主从系统,其特征在于,
所述从节点还用于在接收到所述第二心跳信息时,返回包括资源状态信息的心跳反馈;
处于所述工作状态的主节点向所述从节点分配任务时,执行的步骤包括:根据所述资源状态信息向所述从节点分配任务。
9.根据权利要求8所述的分布式主从系统,其特征在于,
所述从节点还用于存储会话标识,在接收到所述第二心跳信息时,判断所述第二心跳信息中的会话标识和存储的所述会话标识是否一致,并当所述第二心跳信息中的会话标识和存储的所述会话标识一致时,返回所述心跳反馈。
10.根据权利要求1所述的分布式主从系统,其特征在于,
所述从节点上配置有所述主节点的地址信息,所述从节点还用于根据所述主节点的地址信息将所述从节点的地址信息发送至所述主节点;
处于所述工作状态的主节点还用于在发送会话标识请求至所述从节点之前,接收所述从节点的地址信息,根据所述从节点的地址信息与所述从节点建立连接。
11.根据权利要求1所述的分布式主从系统,其特征在于,所述从节点还用于在所述第二预设时长内没有接受到所述第二心跳消息时,保存任务状态信息至外部存储装置,并启动自行销毁程序。
CN201911185488.9A 2019-11-27 2019-11-27 分布式主从系统 Active CN112865995B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911185488.9A CN112865995B (zh) 2019-11-27 2019-11-27 分布式主从系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911185488.9A CN112865995B (zh) 2019-11-27 2019-11-27 分布式主从系统

Publications (2)

Publication Number Publication Date
CN112865995A true CN112865995A (zh) 2021-05-28
CN112865995B CN112865995B (zh) 2022-10-14

Family

ID=75985075

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911185488.9A Active CN112865995B (zh) 2019-11-27 2019-11-27 分布式主从系统

Country Status (1)

Country Link
CN (1) CN112865995B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821329A (zh) * 2021-11-24 2021-12-21 湖南大学 一种面向大规模数据的并行任务处理方法和系统
CN114363350A (zh) * 2021-12-14 2022-04-15 中科曙光南京研究院有限公司 一种服务治理系统及方法

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
CN106789197A (zh) * 2016-12-07 2017-05-31 高新兴科技集团股份有限公司 一种集群选举方法及系统
CN106911728A (zh) * 2015-12-22 2017-06-30 华为技术服务有限公司 分布式系统中主节点的选取方法和装置
US20170270176A1 (en) * 2010-12-23 2017-09-21 Eliot Horowitz System and method for determining consensus within a distributed database
CN108123851A (zh) * 2017-12-29 2018-06-05 北京奇虎科技有限公司 分布式系统中主从节点同步链路的存活检测方法及装置
CN108717379A (zh) * 2018-05-08 2018-10-30 平安证券股份有限公司 电子装置、分布式任务调度方法及存储介质
CN109803024A (zh) * 2019-01-28 2019-05-24 北京中科晶上科技股份有限公司 一种用于集群节点网络的方法
CN110431533A (zh) * 2016-12-30 2019-11-08 华为技术有限公司 故障恢复的方法、设备和系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170270176A1 (en) * 2010-12-23 2017-09-21 Eliot Horowitz System and method for determining consensus within a distributed database
CN104933132A (zh) * 2015-06-12 2015-09-23 广州巨杉软件开发有限公司 基于操作序列号的分布式数据库有权重选举方法
CN106911728A (zh) * 2015-12-22 2017-06-30 华为技术服务有限公司 分布式系统中主节点的选取方法和装置
CN106789197A (zh) * 2016-12-07 2017-05-31 高新兴科技集团股份有限公司 一种集群选举方法及系统
CN110431533A (zh) * 2016-12-30 2019-11-08 华为技术有限公司 故障恢复的方法、设备和系统
CN108123851A (zh) * 2017-12-29 2018-06-05 北京奇虎科技有限公司 分布式系统中主从节点同步链路的存活检测方法及装置
CN108717379A (zh) * 2018-05-08 2018-10-30 平安证券股份有限公司 电子装置、分布式任务调度方法及存储介质
CN109803024A (zh) * 2019-01-28 2019-05-24 北京中科晶上科技股份有限公司 一种用于集群节点网络的方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113821329A (zh) * 2021-11-24 2021-12-21 湖南大学 一种面向大规模数据的并行任务处理方法和系统
CN113821329B (zh) * 2021-11-24 2022-02-11 湖南大学 一种面向大规模数据的并行任务处理方法和系统
CN114363350A (zh) * 2021-12-14 2022-04-15 中科曙光南京研究院有限公司 一种服务治理系统及方法
CN114363350B (zh) * 2021-12-14 2024-04-16 中科曙光南京研究院有限公司 一种服务治理系统及方法

Also Published As

Publication number Publication date
CN112865995B (zh) 2022-10-14

Similar Documents

Publication Publication Date Title
CN106789362B (zh) 一种设备管理方法及网管系统
CN108810100B (zh) 一种主节点的选举方法、装置及设备
CN107153660B (zh) 分布式数据库系统的故障检测处理方法及其系统
CN111190736A (zh) 基于微服务的低入侵分布式定时任务调度系统及方法
CN112865992B (zh) 分布式主从系统中主节点的切换方法、装置和计算机设备
CN108881512B (zh) Ctdb的虚拟ip均衡分配方法、装置、设备及介质
US9367261B2 (en) Computer system, data management method and data management program
CN107329820B (zh) 一种用于集群系统的任务处理方法及装置
US8572237B2 (en) Failover mechanism for distributed process execution
KR20140122240A (ko) 확장 가능한 환경에서의 파티션 관리 기법
CN112333249B (zh) 一种业务服务系统及方法
CN112865995B (zh) 分布式主从系统
CN107153595B (zh) 分布式数据库系统的故障检测方法及其系统
CN111404730B (zh) 一种虚拟路由器的状态同步方法、装置、电子设备及存储介质
CN108616424B (zh) 一种资源调度方法、计算机设备和系统
CN113382077B (zh) 微服务调度方法、装置、计算机设备和存储介质
CN112860386A (zh) 分布式主从系统中节点的切换方法
CN113391902B (zh) 一种任务调度方法及设备、存储介质
US8909666B2 (en) Data query system and constructing method thereof and corresponding data query method
CN113765690A (zh) 集群切换方法、系统、装置、终端、服务器及存储介质
CN110650059B (zh) 故障群集检测方法、装置、计算机设备和存储介质
CN107153594B (zh) 分布式数据库系统的ha组件选主方法及其系统
CN116991591B (zh) 一种数据调度方法、装置及存储介质
CN116938881B (zh) 一种实现动态ip池的方法、系统、设备及可读存储介质
CN115811470B (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