一种应用程序的智能故障切换方法及装置与流程

摘要: 本发明属于数据处理,具体涉及一种应用程序的智能故障切换方法及装置。背景技术:1、在当前数据驱动的业务体系中,应用程序作为数据流转的核心环节,需要持续稳定运行以保...
一种应用程序的智能故障切换方法及装置与流程

本发明属于数据处理,具体涉及一种应用程序的智能故障切换方法及装置。

背景技术:

1、在当前数据驱动的业务体系中,应用程序作为数据流转的核心环节,需要持续稳定运行以保障数据抽取、转换、加载的时效性与完整性。随着业务数据量的不断增长及处理逻辑的日益复杂化,应用程序在运行过程中面临两类核心不确定性问题:一方面是程序自身异常,包括进程崩溃、代码异常等情况;另一方面是运行环境扰动,例如cpu瞬时飙高、内存短时占用、网络延迟导致心跳抖动等现象。

2、在实际分布式系统运行环境中,系统观测数值并非真实状态,而是带噪声的状态映射。具体而言,心跳延迟可能由网络抖动造成,而非实际宕机;cpu峰值可能由短时任务引起,而非持续负载。这种观测与真实状态之间的差异使得系统真实运行状态具有不可直接观测、强噪声以及时间相关性等显著特点。这些特点给应用程序的高可用性保障带来了严峻挑战。

3、现有主备切换技术在应对上述复杂场景时存在明显不足。首先,传统方法无法有效区分瞬时波动与持续性退化,导致系统在面对短暂的网络延迟或瞬时资源占用时容易产生误判。其次,现有技术缺乏对状态变化趋势的建模能力,仅能基于当前时刻的单一观测值进行判断,无法识别系统状态的演化过程。此外,现有方案未对观测噪声进行状态修正,直接使用原始心跳和资源数据进行决策,使得数据噪声直接影响判断准确性。更重要的是,传统主备切换技术缺乏切换后的稳定性约束机制,在临界状态下容易产生频繁切换问题,造成系统抖动,严重影响业务连续性。

技术实现思路

1、为了解决现有技术中存在的上述问题,本发明提供了一种应用程序的智能故障切换方法及装置。本发明要解决的技术问题通过以下技术方案实现:

2、第一方面,本发明实施例提供了一种应用程序的智能故障切换方法,所述智能故障切换方法包括:

3、针对主机和备机,在每个周期均执行以下过程:将应用程序内嵌心跳线程向分布式平台写入的时间戳作为当前周期的心跳时间戳,并通过操作系统性能与内存接口获取当前周期的cpu使用率和内存使用率,基于心跳时间戳计算当前周期的心跳新鲜度,基于cpu使用率和内存使用率计算当期周期的资源使用率;根据心跳新鲜度和资源使用率加权融合计算当前周期的观测数据,根据观测数据和预测修正的状态修正系数计算当期周期的系统健康状态估计值;其中,状态修正系数根据上一周期的综合趋势评分动态预测修正;基于连续三个周期的系统健康状态估计值进行时间序列行为建模,计算趋势方向、变化幅度和波动稳定性并通过加权求和计算当前周期的综合趋势评分;根据系统健康状态估计值和综合趋势评分计算当期周期的基础健康评分,引入基于时间衰减的历史切换行为惩罚项计算当期周期的稳定性评分;比较主机和备机对应当前周期的稳定性评分并由稳定性评分较高者成为主控节点,并执行主备切换操作。

4、在本发明的一个实施例中,计算当期周期的系统健康状态估计值,公式表示为:

5、;

6、其中,为当前周期时的系统健康状态估计值,为上一周期时的系统健康状态估计值,为状态修正系数,为当前周期时的观测数据,,为当前周期时的心跳新鲜度,,为当前周期时的心跳时间戳,为平滑因子,为当前周期时的资源使用率,,为前周期时的cpu使用率,为前周期时的内存使用率,和为加权系数且满足。

7、在本发明的一个实施例中,状态修正系数根据上一周期的综合趋势评分动态预测修正,包括:

8、当综合趋势评分小于或等于预设阈值时,增大状态修正系数;

9、当综合趋势评分大于预设阈值时,减小状态修正系数。

10、在本发明的一个实施例中,基于连续三个周期的系统健康状态估计值进行时间序列行为建模,计算趋势方向、变化幅度和波动稳定性,包括:

11、基于连续三个周期的系统健康状态估计值判断系统健康状态,根据判断结果计算趋势方向;

12、基于任意连续两个周期的系统健康状态估计值,计算变化幅度;

13、基于连续三个周期的系统健康状态估计值计算方差值,根据方差值计算波动稳定性。

14、在本发明的一个实施例中,基于连续三个周期的系统健康状态估计值判断系统健康状态,根据判断结果计算趋势方向,包括:

15、根据连续三个周期的系统健康状态估计值计算连续两个周期的状态变化值;

16、当连续两个周期的状态变化值均为大于0时判定系统健康状态为持续上升,趋势方向取值为1;

17、当连续两个周期的状态变化值均为小于0时判定系统健康状态为持续恶化,趋势方向取值为-1;

18、否则,判定系统健康状态的趋势不稳定,趋势方向取值为0。

19、在本发明的一个实施例中,计算当前周期的综合趋势评分,公式表示为:

20、;

21、其中,为当前周期时的综合趋势评分,为当前周期时的趋势方向,为当前周期时的变化幅度,为当前周期时的波动稳定性,、、分别为加权系数且满足。

22、在本发明的一个实施例中,计算当期周期的基础健康评分,公式表示为:

23、;

24、其中,为当期周期时的基础健康评分,为当前周期时的系统健康状态估计值,为当前周期时的综合趋势评分,、分别为加权系数且满足。

25、在本发明的一个实施例中,计算当期周期的稳定性评分,公式表示为:

26、;

27、其中,为当期周期时的稳定性评分,为当期周期时的基础健康评分,为当期周期时的历史切换行为惩罚项,,为上一次发生主机与备机切换的时间,为衰减常数,为惩罚系数。

28、在本发明的一个实施例中,比较主机和备机对应当前周期的稳定性评分并由稳定性评分较高者成为主控节点,并执行主备切换操作,包括:

29、比较主机和备机对应当前周期的稳定性评分,由稳定性评分较高的节点向分布式平台申请分布式锁,获得分布式锁的节点成为主控节点,并执行主备切换操作。

30、第二方面,本发明实施例提供了一种应用程序的智能故障切换装置,应用于包括主机和备机的系统中,所述智能故障切换装置包括:

31、数据采集模块,将应用程序内嵌心跳线程向分布式平台写入的当前时间戳作为当前周期的心跳时间戳,同时通过操作系统性能与内存接口获取当前周期的cpu使用率和内存使用率,基于心跳时间戳计算当前周期的心跳新鲜度,基于cpu使用率和内存使用率计算当期周期的资源使用率;

32、状态估计模块,根据心跳新鲜度和资源使用率加权融合计算当前周期的观测数据,根据观测数据和预测修正的状态修正系数计算当期周期的系统健康状态估计值;其中,状态修正系数根据上一周期的综合趋势评分动态预测修正;

33、趋势建模模块,基于连续三个周期的系统健康状态估计值进行时间序列行为建模,计算趋势方向、变化幅度和波动稳定性,通过加权求和计算当前周期的综合趋势评分;

34、稳定处理模块,根据系统健康状态估计值和综合趋势评分计算当期周期的基础健康评分,引入基于时间衰减的历史切换行为惩罚项计算当期周期的稳定性评分;

35、仲裁模块,比较主机和备机对应当前周期的稳定性评分并由稳定性评分较高者成为主控节点,并执行主备切换操作;

36、其中,数据采集模块、状态估计模块、趋势建模模块、稳定处理模块、仲裁模块分别部署于主机和备机中。

37、本发明的有益效果:

38、本发明提出的应用程序的智能故障切换方法,针对现有主备切换技术无法区分瞬时波动与持续性退化、缺乏状态趋势建模、未对观测噪声进行修正及缺乏稳定性约束等问题,本发明提出了通过构建状态估计、趋势分析和稳定性评估组成的分层级决策架构实现主备智能切换。具体地:基于观测融合的状态估计机制,使系统不再直接依赖原始心跳与资源数据进行判断,而是对多源观测信息进行平滑融合,从而有效抑制网络延迟、瞬时cpu峰值等因素带来的数据噪声,使系统健康状态评估更加接近真实运行状态,显著降低了误切换与漏切换概率。通过引入基于时间序列的趋势分析模型,使系统能够从状态值判断升级为行为变化判断,不仅能够识别当前是否异常,还能够判断系统是否处于持续恶化或瞬时波动状态,从而提高对真实故障的识别能力,避免因短时异常导致的不必要切换。基于历史切换行为惩罚机制的稳定性评估,使主备切换不再依赖单次判断结果,而是综合考虑当前健康状态、趋势变化以及历史切换行为,从而避免系统在临界状态下频繁切换,显著提高系统运行稳定性与连续性。通过结合分布式锁机制,在保证状态判断正确性的基础上,实现主备切换执行权的唯一性控制,从根本上避免主备同时执行业务导致的数据冲突或重复处理问题。本发明整体实现了从静态规则驱动型主备切换向状态建模驱动型智能决策切换的技术升级,显著提升了系统在复杂网络与高并发环境下的可靠性与鲁棒性。

39、以下将结合附图及实施例对本发明做进一步详细说明。