This application discloses a node state detection method and device in a distributed system. The method includes: step 1, sending a call request to the health state interface of the second node which is opposite to the first node's subordinate relationship by the first node in the distributed system; step 2, judging whether the first node receives the health state information of the second node in the time-out; step 3, if the health state information of the second node is not received in the time-out time, then Determine whether the number of requests sent to the second node reaches the threshold of the number of requests: If the number of requests sent by the second node does not reach the threshold of the number of requests, the number of requests is increased by one, and then returned to step 1; If the number of requests sent by the second node reaches the threshold of the number of requests, the communication chain between the first node and the second node is determined. The road has been disconnected. The above method makes the detection of node status in distributed system more accurate.
【技术实现步骤摘要】
一种分布式系统中的节点的状态检测方法和装置
本申请涉及分布式系统领域,尤指一种分布式系统中的节点的状态检测方法和装置。
技术介绍
随着摩尔定律遇到的瓶颈,需要依靠分布式架构的系统(简称“分布式系统”)才能实现海量数据处理能力和可扩展计算能力。在分布式系统中,每个服务节点的状态显得至关重要,如果主节点不能准确的判断从节点的状态,则无法协调节点的资源,各个从节点不能判断主节点的状态,则无法重新选举主节点,轻则导致数据不一致,重则导致系统无法运行。如果采用发送ping命令的方式来检测节点的状态的话,则在网络负载高的时候(例如,出现暂时的网络故障或者延迟的时候),则心跳发送与接收这一过程的所有时间可能大于超时时间,而在网络负载小的时候,心跳发送与接收这一过程的所有时间可能小于超时时间,因此事实上对于网络负载不同的场景来说,判断节点的状态的标准是不一致的,这可能造成误判服务节点的状态。
技术实现思路
为了解决上述技术问题,本申请提供了一种分布式系统中的节点的状态检测方法和装置,其能够更加准确地判断分布式系统中的服务节点的状态。为了达到本专利技术目的,本专利技术实施例提供了一种分布式系统中的节点的状态检测方法,该方法包括下列步骤:步骤一、采用分布式系统中的第一节点向与第一节点从属关系相反的第二节点的健康状态接口发送调用请求;其中,分布式系统包括多个服务节点,第一节点是在多个服务节点之中的主节点或者是在多个服务节点之中的与主节点的从属关系相反的从节点;步骤二、判断第一节点在超时时间内是否接收到第二节点的健康状态信息;步骤三、如果未在超时时间内接收到第二节点的健康状态信息,则 ...
【技术保护点】
1.一种分布式系统中的节点的状态检测方法,其特征在于,所述方法包括下列步骤:步骤一、采用分布式系统中的第一节点向与所述第一节点从属关系相反的第二节点的健康状态接口发送调用请求;其中,所述分布式系统包括多个服务节点,所述第一节点是在所述多个服务节点之中的主节点或者是在所述多个服务节点之中的与主节点的从属关系相反的从节点;步骤二、判断所述第一节点在超时时间内是否接收到所述第二节点的健康状态信息;步骤三、如果未在所述超时时间内接收到所述第二节点的健康状态信息,则判断向所述第二节点发送调用请求的次数是否达到请求次数的阈值:如果所述第二节点发送调用请求的次数未达到请求次数的阈值,则将请求次数加一,然后返回到步骤一;如果所述第二节点发送调用请求的次数达到了请求次数的阈值,则确定所述第一节点与所述第二节点之间的通讯链路已经断开。
【技术特征摘要】
1.一种分布式系统中的节点的状态检测方法,其特征在于,所述方法包括下列步骤:步骤一、采用分布式系统中的第一节点向与所述第一节点从属关系相反的第二节点的健康状态接口发送调用请求;其中,所述分布式系统包括多个服务节点,所述第一节点是在所述多个服务节点之中的主节点或者是在所述多个服务节点之中的与主节点的从属关系相反的从节点;步骤二、判断所述第一节点在超时时间内是否接收到所述第二节点的健康状态信息;步骤三、如果未在所述超时时间内接收到所述第二节点的健康状态信息,则判断向所述第二节点发送调用请求的次数是否达到请求次数的阈值:如果所述第二节点发送调用请求的次数未达到请求次数的阈值,则将请求次数加一,然后返回到步骤一;如果所述第二节点发送调用请求的次数达到了请求次数的阈值,则确定所述第一节点与所述第二节点之间的通讯链路已经断开。2.根据权利要求1所述的方法,其特征在于,在确定所述第一节点与所述第二节点之间的通讯链路已经断开的步骤之后,所述方法还包括:如果所述第一节点是主节点并且所述第二节点是从节点,则重新分配所述第二节点与所述第一节点的其他从节点之间的资源。3.根据权利要求1所述的方法,其特征在于,在确定所述第一节点与所述第二节点之间的通讯链路已经断开的步骤之后,所述方法还包括:如果所述第一节点是从节点并且所述第二节点是主节点,则查询是否确定所述第二节点的其他从节点与所述第二节点的通讯链路已经断开:如果确定所述第二节点的其他从节点与所述第二节点的通讯链路已经断开,则在所述第二节点的所有从节点中选举出第三节点作为除了所述第三节点以外的所述第二节点的所有从节点中的主节点。4.根据权利要求1所述的方法,其特征在于,在步骤一之前,所述方法还包括:当检测到所述分布式系统添加了第四节点的时候,设置所述第四节点的健康状态接口,所述第四节点的健康状态接口用于接收在所述分布式系统中与所述第四节点的从属关系相反的服务节点的调用请求。5.根据权利要求1所述的方法,其特征在于,在步骤一之前,所述方法还包括:设置所述超时时间以及所述请求次数的阈值。6.一种分布式系统中的节点的状态检测装置,其特征在于,所述装置包括请求发送模块、状态判断模块、次数判断模块、次数累加模块以及状态确定模块;其中,所述请求发送模块用于:采用分布式系统中的第一节点向与所述第一节点从属...
【专利技术属性】
技术研发人员:贾伟,郭锋,
申请(专利权)人:郑州云海信息技术有限公司,
类型:发明
国别省市:河南,41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。