一种高响应速度Web应用健康检测方法及系统与流程
本发明涉及计算机与网络通信,具体而言,涉及一种高响应速度web应用健康检测方法及系统、电子设备、计算机可读存储介质和计算机程序产品。
背景技术:
1、随着互联网技术的快速发展,基于web的应用服务规模日益庞大,服务的高可用性成为系统架构设计的核心诉求。在分布式系统或微服务架构中,通常采用健康检测机制来监控服务节点的状态,以便在节点发生故障时及时进行流量切换,保障业务的连续性。
2、针对上述健康检测,现有的技术主要分为主动健康检测与被动健康检测两类。主动健康检测通过定期向服务节点发送探测请求(如http请求)来判断节点的健康状态,虽然判定结果相对准确,但需要多次连续失败才能触发切换动作,从故障发生到系统响应往往存在数十秒至数分钟的延迟,无法满足对实时性要求较高的业务场景。被动健康检测则基于真实业务流量进行监测,通过统计请求的异常返回码来判定节点状态,虽然响应速度快,能够实现秒级切换,但由于真实流量存在偶发性抖动,容易因瞬时异常导致误判,造成节点被错误隔离。此外,现有的技术方案往往缺乏统一的闭环管理机制,在流量切换、故障裁决与资源调度之间缺乏清晰的边界与联动,容易引发系统抖动或资源分配失衡。
3、可见,现有技术中的健康检测方案仅依赖主动健康检测时需多次失败才触发,故障到系统动作常延迟数十秒至数分钟;仅依赖被动健康检测虽反应迅速,但对偶发异常过敏、易误伤;而且现有方案对“切换—裁决—调度”缺乏统一闭环:快速切流与最终驱逐/回收的边界不清;以及在内网穿透对外暴露场景下,需在不改造业务前提下完成健康判定与秒级切换。
4、基于此,本发明的目的在于针对上述现有技术的不足,提供一种高响应速度web应用健康检测方法及系统,旨在解决上述技术问题。
技术实现思路
1、针对现有技术中的缺陷,本发明的目的是提供一种高响应速度web应用健康检测方法及系统,提出在主动健康检测技术的基础上引入被动健康检测技术,并且在被动健康检测失败时仅仅是暂时停止对该节点转发流量,但并未真正驱逐该节点,是否应当驱逐该节点,由主动健康检测系统作最终裁决;最终,这种主动和被动结合的健康检测技术,实现了检测的准确性和动作的迅速性的有机结合,实现通过结合被动检测的快速响应特性与主动检测的准确裁决特性,构建分级的状态流转机制,实现故障的快速止损与准确判定的有机结合。
2、具体地,本发明所要解决的技术问题在于针对上述现有技术中的不足,第一方面,提供了一种高响应速度web应用健康检测方法,应用于包含被动健康检测模块、主动健康检测模块的系统中,其中,所述被动健康检测模块是内网穿透模块的一个插件,包括如下步骤:
3、步骤一:通过所述内网穿透模块建立内网穿透链路,将内网服务节点暴露至公网并承载http请求的转发;
4、步骤二:将被动健康检测模块以插件形式挂载于所述内网穿透模块的数据面,配置异常http返回码集合、检测参数m和n,其中,参数m、n为正整数,且n≤m;
5、步骤三:所述被动健康检测模块对所述内网穿透模块所转发的http请求进行过滤统计,获取最近m次请求的http返回码;若所述最近m次请求中,属于所述异常http返回码集合的返回码次数达到n次,则判定被动健康检测失败;
6、步骤四:当判定被动健康检测失败时,所述内网穿透模块立即将发往当前工作节点的流量切换至预设的热备节点,并将所述被判定异常的原工作节点标记为热备节点、原热备节点提升为工作节点,以完成工作节点与热备节点的角色互换;
7、步骤五:所述主动健康检测模块按预设的检测周期对所述当前工作节点的指定路径发起探测请求,根据返回码是否落入预设的预期返回码集合判断单次探测是否通过;若连续未通过的探测次数达到预设的错误容忍次数,则判定主动健康检测失败;
8、步骤六:当判定主动健康检测失败时,将所述当前工作节点标记为污点,移出可调度节点池,并由调度器调度热备节点或冷备节点补入可调度节点池以填补产能。
9、本方案针对业界广泛采用的主动健康检测技术虽然检测准确,但是需要一段时间内多次检测失败才能引起系统动作,从故障真正发生至系统动作的时间长达数十秒至数分钟的问题,本发明引入了被动健康检测系统结合热备份系统作为一种补充。被动健康检测系统极为灵敏,动作迅速,可以在故障发生时秒级切换流量。但是,也因为被动健康检测过于灵敏,容易被服务端正常运行时偶发的异常http返回码意外触发,因此本发明在被动健康检测失败时仅仅是暂时将该节点降级为热备状态,暂时停止对该节点转发流量,但并未真正驱逐该节点。是否应当驱逐该节点,由主动健康检测系统作最终裁决。上述被动健康检测先行响应、主动健康检测最终裁决的机制,可概括为“被动先行、主动裁决”。最终,这种主动和被动结合的健康检测技术,实现了检测的准确性和动作的迅速性的有机结合,进一步提升服务的可用性与稳定性。
10、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,所述异常http返回码集合包括服务器错误类5xx状态码。
11、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,所述主动健康检测模块还配置有初始宽限时间;在所述初始宽限时间内,即使主动探测返回码未落入预期返回码集合,也不计入未通过次数。
12、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,当被动健康检测失败且完成角色互换后,开启最小隔离时长;在所述最小隔离时长内,禁止将已降级为热备节点的原工作节点重新提升为工作节点。
13、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,当被动健康检测失败时,如当前已弹出的节点比例超过预设的最大弹出比例,则抑制本次流量切换,以避免大面积误隔离。
14、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,当主动健康检测未失败时,维持所述工作节点与热备节点的角色互换结果,并将原工作节点置于观察期,由系统策略决定是否回池。
15、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,所述被动健康检测模块的统计基于滑动窗口内最近连续m次请求实现;或等价设置为基于时间窗口加失败计数的判定方式。
16、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,所述内网穿透模块可替换为反向代理服务器或边车代理,所述被动健康检测模块以插件形式挂载于对应数据面,并对所转发的http请求进行过滤统计。
17、在根据本发明所述的一种高响应速度web应用健康检测方法的一实施方式中,所述调度器在补位时优先选用已有的热备节点;在无可用热备节点时,启动冷备节点并完成服务就绪后纳入可调度节点池。
18、第二方面,本发明提供了一种高响应速度web应用健康检测系统,包括:
19、内网穿透模块,用于建立内网穿透链路,将内网服务节点暴露至公网并承载http请求转发;
20、被动健康检测模块,以插件形式挂载于所述内网穿透模块的数据面,用于配置异常http返回码集合以及检测参数m和n,并对所述内网穿透模块转发的http请求进行过滤统计;当最近m次请求中属于所述异常http返回码集合的返回码次数达到n次时,判定被动健康检测失败;
21、所述内网穿透模块还用于在被动健康检测失败时,立即将发往当前工作节点的流量切换至预设的热备节点,并将当前工作节点与热备节点的角色互换;
22、主动健康检测模块,用于按预设检测周期对所述当前工作节点的指定路径发起探测,根据返回码是否落入预设预期返回码集合以及连续未通过次数是否达到预设错误容忍次数,判定主动健康检测失败;
23、热/冷备与调度组件,用于在主动健康检测失败时,将所述当前工作节点标记为污点并移出可调度节点池,以及调度热备节点或冷备节点补入可调度节点池。
24、在根据本发明所述的一种高响应速度web应用健康检测系统的一实施方式中,所述被动健康检测模块还用于在被动失败并完成角色互换后,触发最小隔离时长计时;在所述最小隔离时长内,禁止将已降级的原工作节点重新提升为工作节点。
25、第三方面,本发明提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的高响应速度web应用健康检测方法的步骤。
26、与现有技术相比,本发明的积极效果是:
27、本发明通过引入“被动检测触发降级”与“主动检测触发驱逐”的两阶段处理机制,有效解决了单一检测机制在响应速度与判定准确性之间难以兼顾的矛盾。首先,利用被动检测单元对真实业务流量进行实时监测,一旦发现异常即刻触发节点降级与流量切换,将故障节点隔离至备用状态,实现了秒级的故障响应速度,极大降低了故障对业务的影响。其次,通过主动检测单元对处于备用状态的节点进行持续探测,为最终是否驱逐节点提供了准确的裁决依据,有效避免了因偶发性异常导致的节点误判。同时,通过将节点状态流转与调度策略联动,在节点被驱逐后自动选择备用节点补位,保障了系统的资源容量与服务能力,形成了从故障发现、快速止损、准确裁决到资源补位的完整闭环,显著提升了系统的稳定性与可靠性。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com