技术新讯 > 电子通信装置的制造及其应用技术 > 分布式架构下的节点故障检测方法、装置及存储介质与流程  >  正文

分布式架构下的节点故障检测方法、装置及存储介质与流程

  • 国知局
  • 2024-08-22 14:49:36

本申请涉及分布式架构,尤其涉及一种分布式架构下的节点故障检测方法、装置及存储介质。

背景技术:

1、在分布式架构下,多个微服务组成集群对外提供服务,外部发起请求后,由集群中任一微服务节点接收请求,开始执行相应任务,集群服务到单个微服务节点的转移对外部服务来说是完全透明的。

2、相关技术领域中,对于处理集群节点故障的技术,大多是依赖于服务的心跳机制,服务主动或被动去更新心跳时间,只有心跳保持正常的更新,就认为服务是健康的。然而,简单的通过节点的心跳是否反馈的机制,对于重启的场景监测不到位,服务的快速重启容易被忽略。同时也缺乏对集群节点发生重启或因故障导致意外宕机时,检测这些节点是否处理完成任务的解决方案。

技术实现思路

1、本申请实施例提供了一种分布式架构下的节点故障检测方法、装置及存储介质,以实现宕机后重启或者宕机后节点故障的检测。

2、本申请实施例采用下述技术方案:

3、第一方面,本申请实施例提供一种分布式架构下的节点故障检测方法,其中,所述方法包括:

4、根据数据库中的心跳表,获取分布式架构的集群中的健康节点;

5、根据任务执行记录表,获取任务记录;

6、对比所述健康节点的启动时间与所述任务记录中的任务开始执行时间;

7、如果所述任务记录中的任务开始执行时间早于所述健康节点的启动时间,则执行预设故障处理流程。

8、在一些实施例中,所述方法还包括:

9、在分布式架构的集群节点启动后,设置可执行标志为false;

10、响应于外部发送请求,将请求负载到当前节点;

11、所述当前节点判断所述可执行标志为false,并在所述数据库中的心跳表中找出心跳健康节点,当前节点将请求转发至心跳健康节点;

12、维护所述数据库中的心跳表,并将可执行标志置为true,所述心跳表至少包括如下之一的字段:节点地址、节点启动时间、节点心跳更新时间。

13、在一些实施例中,所述方法还包括:

14、在所述分布式架构的集群中选取出主节点并维护主节点选举表,其中,所述主节点选举表至少包括如下之一的字段:集群名称、节点地址。

15、在一些实施例中,所述方法还包括:

16、生成任务与任务记录,其中,所述任务记录中至少包括如下之一的字段:执行任务执行节点地址、开始执行时间;

17、将任务执行记录落库后,开始执行任务。

18、在一些实施例中,所述对比所述健康节点的启动时间与所述任务记录中的任务开始执行时间之前,还包括:

19、在任务执行的过程中,假设某个节点出现宕机的情况。

20、在一些实施例中,所述主节点每隔一段时间扫描预设重启时间内的所述数据库中的心跳表。

21、在一些实施例中,所述预设故障处理流程包括:

22、如果所述任务记录中的任务开始执行时间早于所述健康节点的启动时间,则认为任务在节点重启前触发,将任务状态修正为失败并发起重投处理;

23、再次扫描三次心跳间隔未更新心跳时间的节点,查找至少三次以上没有更新的节点并通过节点地址依次探测节点是否健康;

24、如果持续一段时间仍探测失败,则认为节点异常并发起重投;

25、如果所述任务记录中的任务开始执行时间晚于所述健康节点的启动时间,则认为任务在节点重启后触发。

26、第二方面,本申请实施例还提供一种分布式架构下的节点故障检测装置,其中,所述装置包括:

27、节点获取模块,用于根据数据库中的心跳表,获取分布式架构的集群中的健康节点;

28、任务获取模块,用于根据任务执行记录表,获取任务记录;

29、对比模块,用于对比所述健康节点的启动时间与所述任务记录中的任务开始执行时间;

30、执行模块,用于如果所述任务记录中的任务开始执行时间早于所述健康节点的启动时间,则执行预设故障处理流程。

31、第三方面,本申请实施例还提供一种电子设备,包括:处理器;以及被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行上述方法。

32、第四方面,本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行上述方法。

33、本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:根据数据库中的心跳表,获取分布式架构的集群中的健康节点,再根据任务执行记录表,获取任务记录。通过对比所述健康节点的启动时间与所述任务记录中的任务开始执行时间;如果所述任务记录中的任务开始执行时间早于所述健康节点的启动时间,则执行预设故障处理流程。通过上述方法,实现了节点执行任务时发生故障的检测与判断。此外,在分布式架构下,基于数据库心跳表与执行记录表,实现了分布式架构下的节点故障检测,且综合考虑到了节点故障,节点重启场景下的异常检测和任务重投,兼顾了实际运用中的多种情况。

技术特征:

1.一种分布式架构下的节点故障检测方法,其中,所述方法包括:

2.如权利要求1所述方法,其中,所述方法还包括:

3.如权利要求2所述方法,其中,所述方法还包括:

4.如权利要求2所述方法,其中,所述方法还包括:

5.如权利要求4所述方法,其中,所述对比所述健康节点的启动时间与所述任务记录中的任务开始执行时间之前,还包括:

6.如权利要求3所述方法,其中,

7.如权利要求1所述方法,其中,所述预设故障处理流程包括:

8.一种分布式架构下的节点故障检测装置,其中,所述装置包括:

9.一种电子设备,包括:

10.一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行所述权利要求1~7之任一所述方法。

技术总结本申请公开了一种分布式架构下的节点故障检测方法、装置及存储介质,所述方法包括:根据数据库中的心跳表,获取分布式架构的集群中的健康节点;根据任务执行记录表,获取任务记录;对比所述健康节点的启动时间与所述任务记录中的任务开始执行时间;如果所述任务记录中的任务开始执行时间早于所述健康节点的启动时间,则执行预设故障处理流程。通过本申请实现宕机后重启或者宕机后节点故障的检测。技术研发人员:李辉,田猛,王飞龙,胡保祥受保护的技术使用者:中国邮政储蓄银行股份有限公司技术研发日:技术公布日:2024/8/20

本文地址:https://www.jishuxx.com/zhuanli/20240822/280027.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。