本发明专利技术实施例提供了一种两节点系统分区的处理方法和节点。两节点系统的节点包括分布式应用和通讯代理,该方法包括:当两节点系统发生故障时确定节点是否有效,当节点有效时向分布式应用发送指示分布式应用达到法定人数的正确应答消息。本发明专利技术实施例通过在两节点系统中的节点上增加通讯代理,以在两节点系统故障时通过通讯代理可以使得一个节点的分布式应用达到法定人数,从而使得基于法定人数的分布式系统能够用于两节点系统,并且可以正常工作。
【技术实现步骤摘要】
本专利技术涉及分布式系统领域,并且更具体地,涉及两节点系统分区的处理方法和节点。
技术介绍
分布式系统是多个计算机通过通信线路互连而构成的耦合系统。一个分布式系统是若干个独立的计算机的集合,但是对该系统的用户来说,整个系统就像一台计算机一样。在分布式系统的支持下,互连的计算机可以互相协调工作,共同完成一项任务。在多节点的高可用集群中,使用仲裁策略来决定集群的工作状态。通常使用的仲裁策略是计算集群中活跃的节点个数是否超过整个集群节点总数的一半。节点之间可以通过心跳网络连接来决定各节点是否活跃。对于一个N节点的分布式系统,系统的法定人数是N/2+1。一般地,分布式系统中节点数目为奇数。而且,分布式系统中节点数目超过法定人数时,整个系统可以正常工作。所以,基于法定人数的分布式系统,通常需要配置至少三个节点,才能使得节点数目大于法定人数。这样的分布式系统还可以容忍部分节点失效,使得有效的节点数目大于或等于法定人数。基于法定人数的分布式系统一般不用于两个节点的情况。而且,如果分布式系统中只有两个节点,那么两个节点中只要有一个节点失效,整个系统由于无法达到法定人数而无法正常工作,导致两节点系统分区或脑裂。
技术实现思路
本专利技术实施例提供一种两节点系统分区的处理方法和节点,能够使得基于法定人数的分布式系统用于两节点系统并正常工作。第一方面,提供了一种两节点系统分区的处理方法,所述方法用于基于法定人数的两节点系统,所述两节点系统中的节点包括通讯代理和分布式应用,其特征在于,所述方法包括:当所述两节点系统发生故障时,所述通讯代理确定所述通讯代理所在的节点是否有效;当所述通讯代理所在的节点有效时,所述通讯代理向所述通讯代理所在的节点的分布式应用发送指示所述分布式应用达到法定人数的正确应答消息。结合第一方面,在第一方面的一种实现方式中,所述方法还包括:当所述通讯代理所在的节点失效时,所述通讯代理向所述分布式应用发送指示所述分布式应用未达到法定人数的错误应答消息,或者,不再向所述分布式应用发送消息。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述方法还包括:所述通讯代理向所述两节点系统中的另一节点的通讯代理发送协调消息;所述通讯代理向所述另一节点的通讯代理发送协调消息的时刻起第一时长内未收到所述另一节点的通讯代理针对所述协调消息发送的回复消息时,确定所述两节点系统发生故障。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述两节点系统还包括网络设备,所述通讯代理确定所述通讯代理所在的节点是否有效包括:所述通讯代理向所述网络设备发送测试数据包;所述通讯代理从向所述网络设备发送所述测试数据包的时刻起第二时长内未收到所述网络设备针对所述测试数据包发送的响应消息时,确定所述节点失效;所述通讯代理从向所述网络设备发送所述测试数据包的时刻起第二时长内收到所述网络设备针对所述测试数据包发送的响应消息时,确定所述节点有效。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述两节点系统还包括连接所述节点与所述两节点系统中的另一节点的串口,所述通讯代理确定所述通讯代理所在的节点是否有效包括:所述通讯代理通过所述串口向所述两节点系统中的另一节点发送检测消息;所述通讯代理从向所述另一节点发送所述检测消息的时刻起第三时长内未收到所述另一节点针对所述检测消息发送的反馈消息时,确定所述节点有效;所述通讯代理从向所述另一节点发送所述检测消息的时刻起第三时长内收到所述另一节点针对所述检测消息发送的反馈消息时,根据节点有效的优先权信息,确定所述节点是否有效。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述两节点系统还包括共享磁盘,所述通讯代理确定所述通讯代理所在的节点是否有效包括:所述通讯代理向所述两节点系统中的另一节点的通讯代理发送检验数据包;所述通讯代理从向所述另一节点的通讯代理发送所述检验数据包的时刻起第四时长内未收到针对所述另一节点的通讯代理发送的回复数据包时时,确定所述节点有效;所述通讯代理从向所述另一节点的通讯代理发送所述检验数据包的时刻起第四时长内收到针对所述另一节点的通讯代理发送的回复数据包时,根据节点有效的优先权信息确定所述节点是否有效。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述节点还包括所述两节点系统中的另一节点的分布式应用的影子进程,所述方法还包括:所述通讯代理在所述节点有效时,启动所述另一节点的分布式应用的影子进程;所述分布式应用接收客户端发送的用于请求对数据进行处理的请求消息,并通过所述通讯代理向所述另一节点的分布式应用的影子进程发送所述请求消息;所述另一节点的分布式应用的影子进程接收所述请求消息,并根据所述请求消息对所述数据进行处理。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述方法还包括:当所述两节点系统未发生故障时,所述通讯代理接收所述分布式应用发送的第一数据包,并向所述两节点系统中另一节点的通讯代理转发所述第一数据包;或者,当所述两节点系统未发生故障时,所述通讯代理接收所述两节点系统中另一节点的通讯代理发送的第二数据包,并向所述分布式应用转发所述第二数据包。结合第一方面及其上述实现方式,在第一方面的另一种实现方式中,所述节点为物理服务器或虚拟服务器。第二方面,提供了一种节点,所述节点属于基于法定人数的两节点系统,其特征在于,所述节点包括分布式应用和通讯代理;所述通讯代理,用于当所述两节点系统发生故障时确定所述节点是否有效;所述通讯代理,还用于当所述节点有效时向所述分布式应用发送指示所述分布式应用达到法定人数的正确应答消息。结合第二方面,在第二方面的一种实现方式中,所述通讯代理,还用于当所述通讯代理所在的节点失效时向所述分布式应用发送指示所述分布式应用未达到法定人数的错误应答消息,或者,不再向所述分布式应用发送消息。结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述通讯代理,还用于从向所述两节点系统中的另一节点的通讯代理发送协调消息的时刻起第一时长内未收到所述另一节点的通讯代理针对所述协调消息发送的回复消息时,确定所述两节点系统发生故障。结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述两节点系统还包括网络设备;所述通讯代理,用于从向所述网络设备发送测试数据包的时刻起第二时长内未收到所述网络设备针对所述测试数据包发送的响应消息时,确定所述节点失效;所述通讯代理,用于从向所述网络设备发送测试数据包的时刻起第二时长内收到所述网络设备针对所述测试数据包发送的响应消息时,确定所述节点有效。结合第二方面及其上述实现方式,在第二方面的另一种实现方式中,所述两节点系统还包括连接所述节点与所述两节点系统中的另一节点的串口 ;所述通讯代理,用于通过所述串口向所述两节点系统中的另一节点发送检测消息;所述通讯代理,用于从向所述另一节点发送所述检测消息的时刻起第三时长内未收到所述另一节点针对所述检测消息发送的反馈消息时,确定所述节点有效;所述通讯代理,用于从向所述另一节点发送所述检测消息的时刻起第三时长内收到所述另一节点针对所述检测消息发送的反馈消息时,根据节点有效的优先权信息,确定所述节点是否有效。结合第二方本文档来自技高网...
【技术保护点】
一种两节点系统分区的处理方法,所述方法用于基于法定人数的两节点系统,所述两节点系统中的节点包括通讯代理和分布式应用,其特征在于,所述方法包括:当所述两节点系统发生故障时,所述通讯代理确定所述通讯代理所在的节点是否有效;当所述通讯代理所在的节点有效时,所述通讯代理向所述通讯代理所在的节点的分布式应用发送指示所述分布式应用达到法定人数的正确应答消息。
【技术特征摘要】
【专利技术属性】
技术研发人员:佟强,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。