一种基于高可用消息框架的异步数据处理方法及其系统与流程

文档序号:33505877发布日期:2023-03-18 00:30阅读:36来源:国知局
一种基于高可用消息框架的异步数据处理方法及其系统与流程

1.本发明涉及消息分布式处理的技术领域,尤其是涉及一种基于高可用消息框架的异步数据处理方法及其系统。


背景技术:

2.目前,在广告投放领域,当广告业务投放时间较长时,如果采用同步投放流程容易导致整体投放时间延长,影响广告用户的使用体验。
3.现有的广告投放异步处理通常采用消息中间件如message queue来进行广告业务解耦,针对投放时间的差异来分配广告投放所需的资源,从而能够保证每个广告投放业务的正常运行,完善用户广告投放体验,但是,仅通过message queue中间件进行单一的业务解耦,部分稳定性以及可靠性较强的数据无法得到很好的追溯与分析,尤其是在数据出现故障或者消息堆积时,容易造成数据监管不到位,引起消息中间件在进行广告投放时出现数据丢失的现象,影响消息中间件的数据处理效率。
4.上述中的现有技术方案存在以下缺陷:单一的业务解耦难以对数据进行追溯分析,容易造成在广告数据投放时出现数据丢失的现象,影响消息中间件的数据处理效率。


技术实现要素:

5.为了提高对广告投放数据的数据处理性能,减少广告数据投放时的数据数据丢失现象,本技术提供一种基于高可用消息框架的异步数据处理方法及其系统。
6.本技术的上述发明目的一是通过以下技术方案得以实现的:提供一种基于高可用消息框架的异步数据处理方法,所述基于高可用消息框架的异步数据处理方法包括:实时获取高可用消息框架中的数据分发状态,其中,所述数据分发状态包括已消费数据和未消费数据;对所述未消费数据进行未消费监控告警处理,得到与所述未消费数据分别匹配的未消费告警数据;对所述未消费告警数据进行告警解决策略匹配处理,并向每个未消费数据进行定时任务匹配处理,得到对应的告警定时任务策略;根据所述告警定时任务策略,对所述未消费告警数据进行定时异步分发处理,得到所述未消费告警数据的异步数据分发策略,以便于对未消费数据进行动态异步调配。
7.通过采用上述技术方案,由于单一的message queue对业务数据进行解耦时,难以对可靠的数据进行追溯分析,容易造成广告业务数据在投放时出现数据丢失的现象,影响消息中间件的数据处理效率,因此,通过获取高可用消息框架中的业务数据的数据分发状态,来实时监控未消费数据的数据处理进度,通过对未消费数据进行未消费监控告警处理,得到未消费告警数据,有助于对未消费数据的实时处理状态进行监控,并通过告警解决策略的匹配结果,向每个未消费数据进行定时任务匹配处理,根据告警定时任务策略来错峰
执行告警解决策略,达到动态调配业务处理资源的效果,从而减少数据拥塞的情况,并通过对未消费告警数据进行定时异步分发处理,来得到与未消费告警数据相匹配的异步数据分发策略,从而便于根据每个未消费数据的实际情况动态调配高可用消息框架的数据资源,来对未消费的业务数据进行错峰异步执行,减少数据高峰期容易出现数据丢失的情况,使每个消息数据的完整的数据传输链路都可以被精准追溯,从而提高高可用消息框架对广告投放数据的数据处理性能,提高消息框架的高可用性。
8.本技术在一较佳示例中可以进一步配置为:在所述实时获取高可用消息框架中的数据分发状态之后,且在对所述未消费数据进行未消费监控告警处理,得到与未消费数据分别匹配的未消费告警数据之前,还包括实时获取所有消费者发送的数据分发请求;根据所述数据分发请求,对高可用消息框架的当前空闲带宽资源容量进行计算,得到高可用消息框架的当前待分配带宽;对所述高可用消息框架与每个消费者之间的传输链路空闲度进行计算,得到可用于数据分发的传输链路空闲值;根据所述传输链路空闲值和所述当前待分配带宽,对所述数据分发请求进行带宽资源分配处理,以便于高可用消息框架能够对目标数据进行顺利分发。
9.通过采用上述技术方案,由于在广告代理投放中,尤其是大促期间,容易出现大用户量消费者同时请求数据分发请求,通过数据同步流程容易造成消息中间件的拥塞,从而造成超负荷部分数据丢失,因此,通过实时获取所有消费者发送至高可用消息框架的数据分发请求,有助于根据数据分发请求精确匹配对应的数据处理资源,根据数据分发请求对高可用消息框架的当前空闲带宽资源容量进行计算,有助于根据高可用消息框架的当前待分配带宽来动态调配对应的带宽资源,减少带宽资源的无效利用,并根据高可用消息框架与每个消费者之间的传输链路空闲程度的计算,得到可用于数据分发的传输链路空闲值,有助于根据传输链路空闲值来判断当前数据传输是否处于高峰期,有助于根据判断结果错峰执行业务数据的传输,根据传输链路空闲值和当前待分配带宽来精确地分配带宽资源,从而便于高可用数据框架能够精确地对目标数据进行数据分发,减少数据与所需带宽资源分配不匹配造成的数据溢出或者对带宽资源的无效占用的情况,减少数据溢出带来的数据丢失现象,进而提高目标数据的消费处理及时性,提高高可用消息框架的数据处理及时性与可靠性。
10.本技术在一较佳示例中可以进一步配置为:所述根据所述传输链路空闲值和所述当前待分配带宽,对所述数据分发请求进行带宽资源分配处理,以便于高可用消息框架能够对每个目标数据进行顺利分发,还包括:实时获取每个目标数据所需带宽资源的待分配等待时间;根据所述待分配等待时间,对每个目标数据所需带宽资源进行权限分配处理,得到所有目标数据的优先权队列;根据所述优先权队列,将高可用消息框架的带宽资源分配至优先权最优的目标数据,以便于优先对优先权最优的目标数据进行数据分发;当所述目标数据匹配到对应的带宽资源时,将所述目标数据发送至对应的消费者,并进行同步备份处理。
11.通过采用上述技术方案,由于每个消费者的目标数据所需带宽资源存在差异,在进行业务数据传输时所需要的带宽资源也不同,从而造成高可用消息框架分配带宽资源的耗时也存在差异,因此,根据每个目标数据所需带宽资源的待分配时间,来调整目标数据的处理顺序,使每条消息数据都能及时进行处理和执行,并根据待分配等待时间的长短来对所有的目标数据进行权限分配,有助于根据优先权队列来对带宽资源进行有序调配,提高高可用消息框架的数据处理有序性,并通过将对优先级最优的目标数据进行优先数据处理,来减少最优目标数据的带宽分配等待时间,提高业务数据的数据处理及时性,当目标数据匹配到对应的带宽资源时,将目标数据发送至对应的消费者,以便于减少带宽资源与待传输的目标数据不匹配造成的数据溢出丢失的情况,从而提高高可用消息框架的可靠性,并通过对目标数据的同步备份来减少目标数据的丢失现象,提高高可用消息框架的高可用性与数据安全性。
12.本技术在一较佳示例中可以进一步配置为:所述根据所述数据分发请求,对高可用消息框架的当前空闲带宽资源容量进行计算,得到高可用消息框架的当前待分配带宽,还包括:根据所述数据分发请求查找对应的目标数据,并计算目标数据的数据传输带宽值;对高可用消息框架的当前剩余带宽容量进行计算,得到高可用消息框架的当前剩余带宽容量值;将所述数据传输带宽值与所述当前剩余带宽容量进行比对,根据比对结果判断高可用消息框架是否满足目标数据传输需求;若否,则调用所述当前剩余带宽容量值至符合所述数据传输带宽值的需求,并统计所述当前剩余带宽容量值的等待调用时间。
13.通过采用上述技术方案,由于高可用消息框架需要同时处理多个业务数据的请求,当前剩余宽带容量与目标数据的数据传输带宽值不一定匹配,因此,根据数据分发请求在高可用消息框架中查找对应的目标数据,并计算目标数据的数据传输带宽值,从而有助于根据数据传输带宽值来实时调配对应的带宽资源,提高带宽资源的调配精准性,并对高可用消息框架的当前剩余带宽容量进行计算,有助于根据当前剩余带宽容量值来实时分配至对应的目标数据,提高目标数据与当前剩余带宽容量的适配性,再根据数据传输带宽值和当前剩余带宽容量之间的比对结果,来判断高可用消息框架是否能够满足目标数据的传输需求,若满足则直接调用对应的带宽资源进行目标数据传输,若不符合,则目标数据的传输进入等待阶段,并调用高可用消息框架的当前剩余带宽容量直到符合数据传输带宽值的需求,减少数据溢出造成的业务数据丢失的情况,并统计高可用消息框架的当前剩余带宽容量值的等待调用时间,根据等待调用时间来调整带宽资源的分配顺序,提高业务数据的处理及时性。
14.本技术在一较佳示例中可以进一步配置为:在所述根据所述数据分发请求查找对应的目标数据,并计算目标数据的数据传输带宽值之前,还包括:根据所述数据分发请求,对高可用消息框架进行配置初始化处理,得到符合所述数据分发请求的配置项数据;根据所述配置项数据,对消费者中间件的每个配置参数值进行统一配置处理,使
所述消费者中间件配置符合数据分发请求的需求;在接收到所述数据分发请求时,将目标消费者与所述消费者中间件进行关联,得到目标消费者与消费者中间件之间的消费者关联关系;根据所述消费者关联关系,调用高可用消息框架中对应的消息发送器进行数据分发处理,以便于对每个目标消费者进行针对性配置。
15.通过采用上述技术方案,根据数据分发请求实时对高可用消息框架进行配置初始化处理,使高可用消息框架的配置项数据更加贴合数据分发请求的需求,通过高可用消息框架的抽象消费者中间件的统一配置,使消费者配置根据实时业务需要进行动态配置的需求,减少每次消费者变化引起的高可用消息框架的底层数据变化,在接收到数据分发请求时,能够使每个消费者根据消费者关联关系,从消费者中间件中继承各个配置项的配置参数,并调用对应的消息发送器对数据进行分发处理,从而简化根据业务需求对消费者配置参数的配置步骤,提高高可用消息框架的配置效率。
16.本技术在一较佳示例中可以进一步配置为:所述实时获取高可用消息框架中的数据分发状态之前,还包括:实时获取数据库发送至高可用消息框架的业务数据;将所述业务数据与数据库中的初始化数据进行比对,得到未成功消费的堆积数据;对所述堆积数据进行定时任务匹配处理,得到堆积数据定时分配策略,以便于根据所述堆积数据定时分配策略进行堆积数据分配;当所述堆积数据超过预设阈值后,对堆积数据进行堆积监控告警处理,生成堆积数据告警解决策略。
17.通过采用上述技术方案,在将数据库拉取业务数据至高可用消息框架时,通过消息框架成功接收到的业务数据与数据库中初始化数据的比对结果,来筛选出初始化数据中存在的未成功消费的堆积数据,减少业务数据的传输遗漏,并对堆积数据进行定时任务匹配处理,从而得到堆积数据定时分配策略,有助于根据堆积数据方式分配策略来定时对堆积数据进行处理,达到错峰执行堆积数据处理的效果,当堆积数据的容量值超过预设阈值后,对堆积数据进行堆积监控告警处理,得到堆积数据告警解决策略,以便于根据堆积数据告警解决策略对堆积数据进行及时处理,减少数据堆积造成的传输链路拥塞现象,从而提高高可用消息框架的数据处理效率。
18.本技术在一较佳示例中可以进一步配置为:所述根据所述告警定时任务策略,对所述未消费告警数据进行定时异步分发处理,得到所述未消费告警数据的异步数据分发策略,以便于对未消费数据进行动态异步调配,还包括:实时获取所述未消费告警数据在定时异步分发过程中的数据分发状态;当所述数据分发状态出现异常时,生成调用所述未消费数据进行再度分配的再分配指令,以便于对数据分发异常的未消费告警数据进行数据重连。
19.通过采用上述技术方案,在未消费告警数据按照异步数据分发策略进行定时异步分发过程中,实时获取每个未消费告警数据的数据分发状态,包括成功分发与异常分发,并在数据分发状态出现异常时,如未消费告警数据丢失,传输链路中断等,根据异常情况来调用再分配指令对未消费数据进行再度分配,如重新构建消费者与高可用消息框架之间的传
输链路,并重新从数据库中调用对应的业务数据进行再次分配,从而达到数据分发异常的未消费告警数据的数据重连,减少未消费告警数据的数据丢失现象,从而提高高可用系统的可靠性。
20.本技术的上述发明目的二是通过以下技术方案得以实现的:提供一种基于高可用消息框架的异步数据处理系统,其特征在于,所述基于高可用消息框架的异步数据处理系统包括:数据状态获取模块,用于实时获取高可用消息框架中的数据分发状态,其中,所述数据分发状态包括已消费数据和未消费数据;数据监控处理模块,用于对所述未消费数据进行未消费监控告警处理,得到与所述未消费数据分别匹配的未消费告警数据;策略匹配处理模块,用于对所述未消费告警数据进行告警解决策略匹配处理,并向每个未消费数据进行定时任务匹配处理,得到对应的告警定时任务策略;异步分发处理模块,用于根据所述告警定时任务策略,对所述未消费告警数据进行定时异步分发处理,得到所述未消费告警数据的异步数据分发策略,以便于对未消费数据进行动态异步调配。
21.通过采用上述技术方案,由于单一的message queue对业务数据进行解耦时,难以对可靠的数据进行追溯分析,容易造成广告业务数据在投放时出现数据丢失的现象,影响消息中间件的数据处理效率,因此,通过获取高可用消息框架中的业务数据的数据分发状态,来实时监控未消费数据的数据处理进度,通过对未消费数据进行未消费监控告警处理,得到未消费告警数据,有助于对未消费数据的实时处理状态进行监控,并通过告警解决策略的匹配结果,向每个未消费数据进行定时任务匹配处理,根据告警定时任务策略来错峰执行告警解决策略,达到动态调配业务处理资源的效果,减少数据拥塞的情况,并通过对未消费告警数据进行定时异步分发处理,来得到与未消费告警数据相匹配的异步数据分发策略,从而便于根据每个未消费数据的实际情况动态调配高可用消息框架的数据资源,来对未消费的业务数据进行错峰异步执行,减少数据高峰期容易出现数据丢失的情况,使每个消息数据的完整的数据传输链路都可以被精准追溯,从而提高高可用消息框架对广告投放数据的数据处理性能,提高消息框架的高可用性。
22.本技术的上述目的三是通过以下技术方案得以实现的:一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于高可用消息框架的异步数据处理方法的步骤。
23.本技术的上述目的四是通过以下技术方案得以实现的:一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于高可用消息框架的异步数据处理方法的步骤。
24.综上所述,本技术包括以下至少一种有益技术效果:1、通过获取高可用消息框架中的业务数据的数据分发状态,来实时监控未消费数据的数据处理进度,通过对未消费数据进行未消费监控告警处理,得到未消费告警数据,有助于对未消费数据的实时处理状态进行监控,并通过告警解决策略的匹配结果,向每个未消费数据进行定时任务匹配处理,根据告警定时任务策略来错峰执行告警解决策略,达到
动态调配业务处理资源的效果,减少数据拥塞的情况,并通过对未消费告警数据进行定时异步分发处理,来得到与未消费告警数据相匹配的异步数据分发策略,从而便于根据每个未消费数据的实际情况动态调配高可用消息框架的数据资源,来对未消费的业务数据进行错峰异步执行,减少数据高峰期容易出现数据丢失的情况,使每个消息数据的完整的数据传输链路都可以被精准追溯,从而提高高可用消息框架对广告投放数据的数据处理性能,提高消息框架的高可用性;2、通过实时获取所有消费者发送至高可用消息框架的数据分发请求,有助于根据数据分发请求精确匹配对应的数据处理资源,根据数据分发请求对高可用消息框架的当前空闲带宽资源容量进行计算,有助于根据高可用消息框架的当前待分配带宽来动态调配对应的带宽资源,减少带宽资源的无效利用,并根据高可用消息框架与每个消费者之间的传输链路空闲程度的计算,得到可用于数据分发的传输链路空闲值,有助于根据传输链路空闲值来判断当前数据传输是否处于高峰期,有助于根据判断结果错峰执行业务数据的传输,根据传输链路空闲值和当前待分配带宽来精确地分配带宽资源,从而便于高可用数据框架能够精确地对目标数据进行数据分发,减少数据与所需带宽资源分配不匹配造成的数据溢出或者对带宽资源的无效占用的情况,减少数据溢出带来的数据丢失现象,进而提高目标数据的消费处理及时性,提高高可用消息框架的数据处理及时性与可靠性;3、根据每个目标数据所需带宽资源的待分配时间,来调整目标数据的处理顺序,使每条消息数据都能及时进行处理和执行,并根据待分配等待时间的长短来对所有的目标数据进行权限分配,有助于根据优先权队列来对带宽资源进行有序调配,提高高可用消息框架的数据处理有序性,并通过将对优先级最优的目标数据进行优先数据处理,来减少最优目标数据的带宽分配等待时间,提高业务数据的数据处理及时性,当目标数据匹配到对应的带宽资源时,将目标数据发送至对应的消费者,以便于减少带宽资源与待传输的目标数据不匹配造成的数据溢出丢失的情况,从而提高高可用消息框架的可靠性,并通过对目标数据的同步备份来减少目标数据的丢失现象,提高高可用消息框架的高可用性与数据安全性。
附图说明
25.图1是本技术一实施例的基于高可用消息框架的异步数据处理方法的实现流程图。
26.图2是本技术一实施例的异步数据处理方法的另一实现流程图。
27.图3是本技术一实施例的异步数据处理方法步骤s102的另一实现流程图。
28.图4是本技术一实施例的异步数据处理方法步骤s201的另一实现流程图。
29.图5是本技术一实施例的异步数据处理方法步骤s104的另一实现流程图。
30.图6是本技术一实施例的异步数据处理方法步骤s40的另一实现流程图。
31.图7是本技术一实施例的异步数据处理方法步骤s10之前的另一实现流程图。
32.图8是本技术一实施例的基于高可用消息框架的异步数据处理系统的结构示意图。
33.图9是实现基于高可用消息框架的异步数据处理方法的计算机设备内部结构示意图。
具体实施方式
34.以下结合附图对本技术作进一步详细说明。
35.在一实施例中,如图1所示,本技术公开了一种基于高可用消息框架的异步数据处理方法,具体包括如下步骤:s10:实时获取高可用消息框架中的数据分发状态,其中,数据分发状态包括已消费数据和未消费数据。
36.具体的,如在高可用消息框架与消费者之间建立心跳检测机制,当消费者成功接收到业务数据后返回一个反馈数据包,高可用消息框架接收到对应的反馈数据包后判断业务数据传输成功,则该业务数据的数据分发状态标记为已消费数据,若高可用消息框架未接收到反馈数据包,则标记该业务数据为未消费数据,从而得到高可用消息框架中的每个业务数据的数据分发状态。
37.在一实施例中,为了更好地对业务数据进行错峰执行,降低数据传输的拥塞程度,如图2所示,在实时获取高可用消息框架中的数据分发状态,且在对未消费数据进行未消费监控告警处理,得到与未消费数据分别匹配的未消费告警数据之前,还包括s101:实时获取所有消费者发送的数据分发请求。
38.具体的,根据消费者的唯一标识码,在高可用消费框架与所有消费者之间建立数据传输通道,当消费者端发起数据分发请求时,通过对应的数据传输通道将数据分发请求传输至高可用消息框架,以便于高可用消息框架根据数据分发请求拉取对应的业务数据。
39.s102:根据数据分发请求,对高可用消息框架的当前空闲带宽资源容量进行计算,得到高可用消息框架的当前待分配带宽。
40.具体的,同时间节点下,根据数据分发请求对应的业务数据量,计算高可用消息框架的当前空闲带宽资源,如根据业务数据量为每秒接收到100个数据分发请求,高可用消息框架的最高带宽资源容量为每秒最高分配2000个业务数据,则高可用消息框架的当前待分配带宽资源为1900,即最高带宽资源容量与当前正在处理的业务数据的实时差值。
41.在一实施例中,为了更好地评估高可用消息框架的数据分发性能,如图3所示,步骤s102还包括:s201:根据数据分发请求查找对应的目标数据,并计算目标数据的数据传输带宽值。
42.具体的,根据消费者的数据分发请求查找对应的目标数据,如在广告投放过程中,根据数据分发请求中的广告投放领域、广告投放时间段以及广告投放人群等要求,在高可用消息队列中查找对应的目标数据,如广告投放领域选型、广告投放时间选型、广告投放人群选型等,根据目标数据的数据传输带宽需求,计算将目标数据传输至对应消费者的数据传输带宽值,如目标数据的数据内存容量作为数据传输带宽值。
43.在一实施例中,为了在消费者发送变化时,减少高可用消息框架的底层逻辑更改变化,提高高可用消息框架的适用性,如图4所示,在根据数据分发请求查找对应的目标数据,并计算目标数据的数据传输带宽值之前,还包括:s301:根据数据分发请求,对高可用消息框架进行配置初始化处理,得到符合数据分发请求的配置项数据。
44.具体的,根据数据分发请求,对高可用消息框架进行配置初始化处理,如引入与数
据分发请求相对应的高可用消息框架依赖,根据消息框架依赖配置配置抽象消费者的各个配置参数,将抽象消费者作为消费者中间件,接入高可用消息框架的每个消费者从消费者中间件中继承配置参数,并对应修改自身配置项,从而得到符合数据分发请求的消息消费主题的配置项数据。
45.s302:根据配置项数据,对消费者中间件的每个配置参数值进行统一配置处理,使消费者中间件配置符合数据分发请求的需求。
46.具体的,根据配置项数据对消费者中间件的每个配置参数值进行统一配置处理,从而在接收到消费者的数据分发请求时,在高可用消息框架中查找对应的依赖项,并根据对应的依赖项对消费者中间件的每个配置参数值进行统一配置,如广告投放地域、人群和投放范围等的配置,从而使消费者中间件配置符合数据分发请求的需求。
47.s303:在接收到数据分发请求时,将目标消费者与消费者中间件进行关联,得到目标消费者与消费者中间件之间的消费者关联关系。
48.具体的,在接收到数据分发请求时,根据目标消费者的唯一标识码如目标消费者的ip地址,将目标消费者注册至高可用消息框架,将注册成功的目标消费者与消费者中间件进行关联,从而得到目标消费者与消费者中间件的消费者关联关系,如消费者中间件与多个目标消费者之间的一对多的关联关系。
49.s304:根据消费者关联关系,调用高可用消息框架中对应的消息发送器进行数据分发处理,以便于对每个目标消费者进行针对性配置。
50.具体的,根据消费者关联关系,目标消费者从消费者中间件继承对应的配置参数,并调整自身配置项至符合业务数据的需求,从而达到无需更改框架底层逻辑就满足消费者的配置需求,在目标消费者与消费者中间件之间建立映射通道,并调用高可用消息框架中对应的消息发送器对业务数据进行数据分发,从而便于对每个目标消费者进行针对性配置,且挑选适配的消息发送器进行数据分发。
51.s202:对高可用消息框架的当前剩余带宽容量进行计算,得到高可用消息框架的当前剩余带宽容量值。
52.具体的,通过高可用消息框架的最大带宽容量与当前已占用的带宽容量之间的差值计算当前剩余带宽容量,如最大带宽容量为3000,已占用的带宽容量为100,则当前剩余带宽容量值为2000,根据高可用消息框架的实时被占用的带宽容量,来动态计算高可用消息框架的当前剩余贷款容量值。
53.s203:将数据传输带宽值与当前剩余带宽容量进行比对,根据比对结果判断高可用消息框架是否满足目标数据传输需求。
54.具体的,将数据传输带宽值与当前剩余带宽容量进行比对,将数据传输带宽值与当前剩余带宽容量之间的差值作为带宽比对结果,根据比对结果判断高可用消息框架的当前剩余带宽容量是否满足目标数据的带宽传输需求,如误差范围内差值大于0则说明当前剩余带宽容量不满足目标数据传输需求,若误差范围小于0则说明当前剩余带宽资源容量符合目标数据传输需求。
55.s204:若否,则调用当前剩余带宽容量值至符合数据传输带宽值的需求,并统计当前剩余带宽容量值的等待调用时间。
56.具体的,若当前剩余带宽容量值不满足目标数据传输需求时,将目标数据划分至
等待带宽资源队列,并计算目标数据的权限值,根据权限值大小调用结束线程的带宽资源至剩余带宽容量值,直到剩余带宽资源容量值符合数据传输带宽值的需求,计算目标数据等待当前剩余带宽容量值的等待调用时间,便于根据等待调用时间的长度来评估高可用消息框架的数据分发性能,如等待调用时间越短,数据分发性能越好。
57.s103:对高可用消息框架与每个消费者之间的传输链路空闲度进行计算,得到可用于数据分发的传输链路空闲值。
58.具体的,如设定每个消费者与高可用消息框架之间都构建有对应的数据传输线程,高可用消息框架每秒可以响应500个线程,根据数据分发请求数量如50,则说明有50个线程等待响应,在高可用消息框架响应后,则等待下一次数据分发的传输链路空闲值为450,即可用于数据分发的传输链路空闲值为高可用消息框架的最高响应线程数量与正在响应的消费者数据分发请求数量之间的差值。
59.s104:根据传输链路空闲值和当前待分配带宽,对数据分发请求进行带宽资源分配处理,以便于高可用消息框架能够对目标数据进行顺利分发。
60.具体的,根据传输链路空闲值是否满足数据分发请求,如传输链路空闲值为50,数据分发请求数量为100个,则根据优先权的不同,优先对优先权最优的50个数据分发请求进行处理,剩余50个数据分发请求则根据等待时间长度进行顺序处理,保证高可用消息框架的数据处理有序性,其次,根据当前待分配带宽值是否满足待执行业务数据的带宽资源需求,若待分配带宽资源为200,待执行业务需求所需带宽资源为500,则需要当前数据分发请求进入等待阶段,并根据等待时间优先给优先权最优的消费者分配带宽资源,直到满足空闲带宽资源500的需求,才对当前数据分发请求进行处理,减少带宽资源不足造成数据溢出丢失的情况,从而使高可用消息框架能够对目标数据进行顺利分发。
61.在一实施例中,为了提高业务数据的数据分发有序性,如图5所示,步骤s104还包括:s401:实时获取每个目标数据所需带宽资源的待分配等待时间。
62.具体的,根据每个目标数据调用带宽资源的用时,如根据目标数据的所需带宽资源与高可用消息框架的剩余带宽资源进行比对,若剩余带宽资源满足目标数据的数据分发需求则待分配等待时间在误差范围内为0,若剩余带宽资源小于目标数据的所需带宽资源需求,则根据带宽资源差值,等待正在执行的线程结束释放出多余的带宽资源,直到满足目标数据的所需带宽资源需求,并统计带宽资源调配的等待时间,得到每个目标数据所需带宽资源的待分配等待时间。
63.s402:根据待分配等待时间,对每个目标数据所需带宽资源进行权限分配处理,得到所有目标数据的优先权队列。
64.具体的,根据待分配等待时间对每个目标数据所需带宽资源进行权限分配处理,如等待时间越长的目标数据的权限值越高,相同等待时间的目标数据根据所需带宽资源的容量大小进行再次分配,如所需带宽资源越大的优先权越低,即优先对所需带宽资源少、带宽资源调配时间短的目标数据进行分发,从而便于快速消费高可用消息框架中的未消费数据,减少数据拥塞的情况,从而得到所有目标数据的优先权队列。
65.s403:根据优先权队列,将高可用消息框架的带宽资源分配至优先权最优的目标数据,以便于优先对优先权最优的目标数据进行数据分发。
66.具体的,根据优先权队列顺序,将高可用消息框架的带宽资源进行针对性分配,优先对优先权最优的目标数据进行处理,并集中将带宽资源调配至优先权最优的目标数据处,从而达到快速满足优先权最优的目标数据的带宽资源需求,提高优先权最优的目标数据的数据分发效率。
67.s404:当目标数据匹配到对应的带宽资源时,将目标数据发送至对应的消费者,并进行同步备份处理。
68.具体的,当目标数据匹配到对应的带宽资源后,如根据目标数据所需带宽资源与高可用消息框架中的空闲带宽资源之间的差值变化,来判断目标数据是否匹配到对应的带宽资源,在误差范围内,当差值为0时,通过对应的数据分发器自动将目标数据发送至对应的消费者,并通过高可用消息框架对目标数据同步备份至数据库中,减少数据丢失造成的损失,通过对目标数据的二次备份存储来提高高可用消息框架的数据可靠性和安全性。
69.s20:对未消费数据进行未消费监控告警处理,得到与未消费数据分别匹配的未消费告警数据。
70.具体的,当检测到业务数据未被高可用消息框架消费时,将未消费的业务数据标记为未消费数据,并匹配未消费监控告警机制,如实时将未消费数据的分发状态传输至客户端,以便于客户端对未消费数据进行实时监控,便于在未消费数据丢失时能够准确获知并进行相应处理,从而得到与每个未消费数据相匹配的未消费告警数据。
71.s30:对未消费告警数据进行告警解决策略匹配处理,并向每个未消费数据进行定时任务匹配处理,得到对应的告警定时任务策略。
72.具体的,根据未消费告警数据追溯未消费数据的异常原因,包括高可用消息框架与消费者之间的数据传输链路是否正常传输,带宽资源是否与业务数据相适配,以及传输过程中是否发生数据溢出等,从而得到未消费告警数据的未消费原因,根据未消费原因,与高可用消息框架中的告警解决策略相匹配,并根据告警解决策略对未消费告警数据进行初步解决,通过未消费数据的数据分发状态判断解决策略是否成功,并对每个未消费数据进行定时任务匹配处理,按照定时任务错峰执行告警解决策略,从而得到每个未消费数据的告警定时任务策略。
73.s40:根据告警定时任务策略,对未消费告警数据进行定时异步分发处理,得到未消费告警数据的异步数据分发策略,以便于对未消费数据进行动态异步调配。
74.具体的,按照告警定时任务策略对未消费告警数据进行定时异步分发处理,如按照对应的定时任务错峰将未消费数据发送至对应的消费者端,通过定时任务定时对未消费告警数据的数据分发状态进行监测,从而使每个未消费告警数据按照告警定时任务策略错开数据分发高峰期来异步执行对应的线程,从而得到与每个未消费告警数据相匹配的异步数据分发策略,以便于按照异步数据分发策略动态将带宽资源调配至对应的未消费数据,便于未消费数据的顺利分发,使每一个业务数据都能够得到及时、可追溯的执行处理,提高高可用消息框架的可靠性。
75.在一实施例中,为了更好地对异常状态下的数据进行及时的数据重连处理,便于减少数据异常造成的数据丢失或数据堆积,如图6所示,步骤s40还包括:s501:实时获取未消费告警数据在定时异步分发过程中的数据分发状态。
76.具体的,通过预设的数据监控机制,对在进行定时异步分发过程中的未消费告警
数据进行监控,并获取未消费告警数据的数据分发状态,如成功分发状态和未成功分发的异常状态,异常状态包括数据发出但却未成功接收、数据未发出或者数据溢出造成数据丢失等。
77.s502:当数据分发状态出现异常时,生成调用未消费数据进行再度分配的再分配指令,以便于对数据分发异常的未消费告警数据进行数据重连。
78.具体的,当数据分发状态出现异常时,如数据监控机制发出监测数据包,却未成功接收到反馈数据包时判断数据分发状态出现异常,在根据异步数据分发策略,对异常状态的数据传输链路进行重连修复后,再根据再分配指令从数据库中重新调用对应的未消费数据进行再度分配,从而减少未消费数据因为数据分发异常导致数据丢失的情况。
79.在一实施例中,在数据库将业务数据分发至高可用消息框架的过程中,为了减少数据库的业务数据传输不完整的情况,如图7所示,在步骤s10之前,还包括:s601:实时获取数据库发送至高可用消息框架的业务数据。
80.具体的,通过rocketmq消息中间件从数据库中拉取所有的业务数据,通过消息监听机制如心跳包监听机制,获取数据库发送至高可用消息框架的所有业务数据,当业务数据发送至高可用消息框架后会反馈一个成功消费的反馈数据包,当数据库端接收到对应的反馈数据包时,说明业务数据成功被高可用消息框架接收。
81.s602:将业务数据与数据库中的初始化数据进行比对,得到未成功消费的堆积数据。
82.具体的,将高可用消息框架中的业务数据与数据库中的初始化数据进行比对,包括业务数据的数据容量、数据标识等,从而根据比对结果,将数据库中未被高可用消息框架消费的数据标记为堆积数据,堆积数据是指数据库中未成功发送至高可用消息框架的初始化数据。
83.s603:对堆积数据进行定时任务匹配处理,得到堆积数据定时分配策略,以便于根据堆积数据定时分配策略进行堆积数据分配。
84.具体的,对未成功消费的堆积数据分别匹配定时任务,通过堆积数据定时分配策略来错峰执行堆积数据的再次消费,包括按照堆积数据的堆积时间以及所需带宽资源等进行优先级排序,并根据优先级排序结果优先处理优先级最优的堆积数据,从而加快堆积数据的处理效率。
85.s604:当堆积数据超过预设阈值后,对堆积数据进行堆积监控告警处理,生成堆积数据告警解决策略。
86.具体的,在堆积数据按照定时任务等待再次处理的过程中,实时统计正在等待的堆积数据数量,当堆积数据数量超过预设阈值后,如根据数据库的每秒最大支持线程数据如2000个数据处理线程,则当堆积数据数量超过2000后容易造成数据库宕机,引起整个系统崩溃,因此,在堆积数据数量超过能够处理的最大预设阈值后,对堆积数据进行堆积监控告警处理,根据堆积数据告警解决策略优先处理堆积数据,使堆积数据能够加速进行数据重连,并将堆积数据告警解决策略发送至管理端,方便内部人员及时排查并解决问题,从而进一步提高高可用消息框架的可靠性。
87.应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本技术实施例的实施过程构成任何限
定。
88.在一实施例中,提供一种基于高可用消息框架的异步数据处理系统,该基于高可用消息框架的异步数据处理系统与上述实施例中基于高可用消息框架的异步数据处理方法一一对应。如图8所示,该基于高可用消息框架的异步数据处理系统包括数据状态获取模块、数据监控处理模块、策略匹配处理模块和异步分发处理模块。各功能模块详细说明如下:数据状态获取模块,用于实时获取高可用消息框架中的数据分发状态,其中,数据分发状态包括已消费数据和未消费数据。
89.数据监控处理模块,用于对未消费数据进行未消费监控告警处理,得到与未消费数据分别匹配的未消费告警数据。
90.策略匹配处理模块,用于对未消费告警数据进行告警解决策略匹配处理,并向每个未消费数据进行定时任务匹配处理,得到对应的告警定时任务策略。
91.异步分发处理模块,用于根据告警定时任务策略,对未消费告警数据进行定时异步分发处理,得到未消费告警数据的异步数据分发策略,以便于对未消费数据进行动态异步调配。
92.在一实施例中,为了更好地对业务数据进行错峰执行,降低数据传输的拥塞程度,在实时获取高可用消息框架中的数据分发状态之后,且在对未消费数据进行未消费监控告警处理,得到与未消费数据分别匹配的未消费告警数据之前,还包括数据分发请求获取子模块,用于实时获取所有消费者发送的数据分发请求。
93.待分配带宽计算子模块,用于根据数据分发请求,对高可用消息框架的当前空闲带宽资源容量进行计算,得到高可用消息框架的当前待分配带宽。
94.传输链路空闲值计算子模块,用于对高可用消息框架与每个消费者之间的传输链路空闲度进行计算,得到可用于数据分发的传输链路空闲值。
95.带宽资源分配子模块,用于根据传输链路空闲值和当前待分配带宽,对数据分发请求进行带宽资源分配处理,以便于高可用消息框架能够对目标数据进行顺利分发。
96.在一实施例中,为了提高业务数据的数据分发有序性,带宽资源分配子模块还包括:待分配等待时间获取子模块,用于实时获取每个目标数据所需带宽资源的待分配等待时间;优先权分配子模块,用于根据待分配等待时间,对每个目标数据所需带宽资源进行权限分配处理,得到所有目标数据的优先权队列;带宽资源优先分配子模块,用于根据优先权队列,将高可用消息框架的带宽资源分配至优先权最优的目标数据,以便于优先对优先权最优的目标数据进行数据分发;数据分配子模块,用于当目标数据匹配到对应的带宽资源时,将目标数据发送至对应的消费者,并进行同步备份处理。
97.在一实施例中,为了更好地评估高可用消息框架的数据分发性能,待分配带宽计算子模块,还包括:数据传输带宽值计算子模块,用于根据数据分发请求查找对应的目标数据,并计算目标数据的数据传输带宽值。
98.当前剩余带宽容量计算子模块,用于对高可用消息框架的当前剩余带宽容量进行计算,得到高可用消息框架的当前剩余带宽容量值。
99.带宽容量比对子模块,用于将数据传输带宽值与当前剩余带宽容量进行比对,根据比对结果判断高可用消息框架是否满足目标数据传输需求。
100.带宽调用子模块,用于若否,则调用当前剩余带宽容量值至符合数据传输带宽值的需求,并统计当前剩余带宽容量值的等待调用时间。
101.在一实施例中,为了在消费者发送变化时,减少高可用消息框架的底层逻辑更改变化,提高高可用消息框架的适用性,在根据数据分发请求查找对应的目标数据,并计算目标数据的数据传输带宽值之前,还包括:配置初始化处理子模块,用于根据数据分发请求,对高可用消息框架进行配置初始化处理,得到符合数据分发请求的配置项数据。
102.配置处理子模块,用于根据配置项数据,对消费者中间件的每个配置参数值进行统一配置处理,使消费者中间件配置符合数据分发请求的需求。
103.消费者关联子模块,用于在接收到数据分发请求时,将目标消费者与消费者中间件进行关联,得到目标消费者与消费者中间件之间的消费者关联关系。
104.数据分发处理子模块,用于根据消费者关联关系,调用高可用消息框架中对应的消息发送器进行数据分发处理,以便于对每个目标消费者进行针对性配置。
105.在一实施例中,在数据库将业务数据分发至高可用消息框架的过程中,为了减少数据库的业务数据传输不完整的情况,在实时获取高可用消息框架中的数据分发状态之前,还包括:业务数据获取子模块,用于实时获取数据库发送至高可用消息框架的业务数据。
106.堆积数据获取子模块,用于将业务数据与数据库中的初始化数据进行比对,得到未成功消费的堆积数据。
107.堆积定时分配子模块,用于对堆积数据进行定时任务匹配处理,得到堆积数据定时分配策略,以便于根据堆积数据定时分配策略进行堆积数据分配。
108.堆积监控告警子模块,用于当堆积数据超过预设阈值后,对堆积数据进行堆积监控告警处理,生成堆积数据告警解决策略。
109.在一实施例中,为了更好地对异常状态下的数据进行及时的数据重连处理,便于减少数据异常造成的数据丢失或数据堆积,异步分发处理模块还包括:数据分发状态获取子模块,用于实时获取未消费告警数据在定时异步分发过程中的数据分发状态。
110.数据重连处理子模块,用于当数据分发状态出现异常时,生成调用未消费数据进行再度分配的再分配指令,以便于对数据分发异常的未消费告警数据进行数据重连。
111.关于基于高可用消息框架的异步数据处理系统的具体限定可以参见上文中对于基于高可用消息框架的异步数据处理方法的限定,在此不再赘述。上述基于高可用消息框架的异步数据处理系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
112.在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结
构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储所有的业务数据以及高可用消息框架处理业务数据产生的中间文件等。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于高可用消息框架的异步数据处理方法。
113.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述一种基于高可用消息框架的异步数据处理方法的步骤。
114.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink) dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
115.所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
116.以上所述实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围,均应包含在本技术的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1