[发明专利]一种状态检查方法、装置及集群系统有效
申请号: | 201710901666.8 | 申请日: | 2017-09-28 |
公开(公告)号: | CN109586989B | 公开(公告)日: | 2022-09-20 |
发明(设计)人: | 鲁振华 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | H04L43/0817 | 分类号: | H04L43/0817;H04L43/10;H04L67/10 |
代理公司: | 北京安信方达知识产权代理有限公司 11262 | 代理人: | 栗若木;龙洪 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 状态 检查 方法 装置 集群 系统 | ||
本申请提供一种状态检查方法、装置及集群系统;其中,所述状态检查方法包括:主线程启动后,创建状态检查线程;当执行所述主线程的节点收到用于进行状态探测的消息后,所述状态检查线程对所述用于进行状态探测的消息进行反馈。本申请至少一个实施例可以避免可用性探测结果受到业务状况的影响。
技术领域
本发明涉及计算机领域,尤其涉及一种状态检查方法、装置及集群系统。
背景技术
计算机系统的可用性是通过系统的可靠性和可维护性来度量的。工程上通常用平均无故障时间来度量系统的可靠性,用平均维修时间来度量系统的可维护性。
服务的高可用性目前通常是采用搭建高可用性(High Availablity,HA)集群的方式实现的。HA可以指程序、或服务、或系统无中断地执行其功能的能力。
一个高可用集群(亦称HA集群)包含多个服务节点,一部分服务节点处于业务的激活状态(可以称之为主节点),一部分服务节点处于业务的备用状态(可以称之为备节点)。当主节点出现故障时,系统激活备节点自动接替主节点提供服务,并将原来的主节点降级成备节点或者重新搭建一个备节点。
其中,对主节点的可用性探测是关键步骤之一。对主节点的可用性探测也可称为健康检查,即判断主节点的健康状态,比如判断主节点的程序、或服务、或系统当前是否处于故障状态,或是否处于正常工作状态。误判或者未及时判断出主节点的健康状态,都将大大降低服务的可用性。
Redis是一个开源的高性能的Key-Value缓存数据库系统,包括多个服务节点;Redis集群中的服务节点当时收到心跳包时回复指定信息,比如收到“ping”命令时回复“pong”,收到info命令时会回复服务器配置参数和统计数据,比如服务器版本,操作系统,启动时间长度等。
利用服务节点的上述特性,Redis集群中的运维系统可以进行Redis可用性探测,一般包括以下技术方案:
心跳探测:通过定期向服务节点发送心跳包的方式探测服务节点的健康状态。如果多个心跳包都没有收到回复,则认为服务节点已经故障了。
Redis哨兵(Sentinel):每秒发送一个心跳包获取当前服务节点健康状态,每N秒(N为正整数)发送一次info命令获取Redis的节点配置状态用于后续故障处理。
上述技术方案都是通过向Redis的服务节点发送ping命令(或其它心跳包)或者info命令,根据Redis服务节点返回的信息来判断当前Redis服务节点的健康状态的。上述技术方案有如下缺点:
可用性探测会受到Redis服务当前业务状况的影响,比如Redis服务繁忙时(比如执行某个时长较长的任务时等),Redis的服务节点无法及时响应探测的命令或者心跳消息,容易被误判为故障,或无法及时判断故障。
发明内容
本申请提供一种状态检查方法、装置及集群系统,可以避免可用性探测结果受到业务状况的影响。
本申请采用如下技术方案。
一种状态检查方法,包括:
主线程启动后,创建状态检查线程;
当执行所述主线程的节点收到用于进行状态探测的消息后,所述状态检查线程对所述用于进行状态探测的消息进行反馈。
其中,执行所述主线程的节点可以为集群的主节点。
其中,所述创建状态检查线程后还可以包括:
所述状态检查线程侦听执行所述主线程的节点的状态检查端口;其中,所述状态检查端口用于接收所述用于进行状态探测的消息。
其中,所述状态检查线程对所述用于进行状态探测的消息进行反馈可以包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710901666.8/2.html,转载请声明来源钻瓜专利网。