一种节点重启后的数据处理方法及设备技术

技术编号:15746469 阅读:196 留言:0更新日期:2017-07-03 01:51
本申请公开了一种节点重启后的数据处理方法。当所述处理节点重新启动完成后,该处理节点获取分布式消息队列中当前缓存时间最长的遗留数据的时刻,根据当前的时刻以及遗留数据的时刻确定恢复周期,并在恢复周期内处理遗留数据以及分布式消息队列中的新增数据。从而避免了由于重启所导致的数据处理间断,消除了对用户感知产生的影响,提升了用户的使用体验。

Data processing method and equipment after node restart

The present invention discloses a data processing method after node restart. When the processing nodes restart after the completion of the acquisition of the legacy data processing node current cache the longest time distributed message queue, according to the current time and the time left to determine the data recovery cycle, and in the recovery period of dealing with new data and distributed data in the message queue. Thereby avoiding the interruption of data processing caused by restarting, eliminating the influence on the user perception and enhancing the user's use experience.

【技术实现步骤摘要】
一种节点重启后的数据处理方法及设备
本申请涉及通信
,特别涉及一种节点重启后的数据处理方法。本申请同时还涉及一种数据处理设备。
技术介绍
随着互联网技术的不断发展,云计算平台越来越成为人们所重视的对象,云计算平台也称为云平台。云平台可以按照功能划分为3类:以数据存储为主的存储型云平台,以数据处理为主的计算型云平台以及计算和数据存储处理兼顾的综合云计算平台。云平台允许开发者们或是将写好的程序放在“云”里运行,或是使用“云”里提供的服务,或二者皆是的平台。如图1所示,为现有的云平台实时监控服务的架构设计示意图。云平台日志服务的架构设计通常分为五层:(日志)收集层、(日志)传输层、处理层、存储层和监控中心。收集层负责读取用户的各类日志,然后将需要存储的日志发送到传输层,在图1所示的现有云平台日志服务架构示意图中,该层的功能由各种Agent(代理)结合现有的云服务功能实现,其中Agent部署在各级物理机或虚拟机上,按规则读取用户的日志并发送。处理层一般由多个可扩展的工作节点(图2中的处理worker)组成,接收传输层的日志,处理后存储到各类存储设备,一个处理worker本质是一个系统进程,无状态,可横向扩展,日志能否保证顺序跟处理层的逻辑密切相关。存储层负责数据存储,可以是物理磁盘,也可以是由分布式文件系统提供的虚拟磁盘。传输层处于收集层与处理层中间,负责保证日志被发送到处理层,一般由可容灾可堆积的消息队列实现,它是收集层和处理层的桥梁。存储层负责数据存储。监控中心包括访问层,访问层设置有专用的访问API,用以对外提供统一的数据访问接口。实时监控服务对实时性要求较高,一般要求监控延时小于5分钟,每分钟一个监控数据。在如此高的实时要求下,如何保证系统重启时,尽量保证数据不丢不重(至少保证监控曲线少抖动、不丢点)是一个技术难题。其中最关键的问题在于有状态节点的重启策略,即实时计算系统处理节点的重启。为了避免由于节点重启所导致的监控曲线抖动问题,现有技术主要采取以下三种方法:(1)数据重放该方式在重启的时候重放消息队列中前几分钟的数据,保证数据不丢。(2)持久化中间状态该方式定时把统计状态保存到持久化的数据库,重启时恢复。(3)同时处理两份数据该方式通过消息队列支持多消费端的特点,同时运行两个实时计算任务,重启一个时,用另一个的数据,重启后再切换回来。然而,专利技术人在实现本申请的过程中发现,以上现有技术分别存在着以下缺点:(1)数据重放容易导致数据重复,且要依赖于消息队列,数据处理往往会涉及到多个数据存储过程,例如:既要更新mysql的元数据,又要存储原始数据到hadoop。这种情况下进行数据重放很可能导致其中部分存储重复。而且数据重放依赖于消息队列的重放功能,比如Kafka,而ONS则不支持。(2)持久化中间状态不适用于扩、缩容、升级情况,且逻辑复杂。很多时候系统重启就是为了扩容、缩容或系统升级,扩缩容后每个处理节点负责的数据就会改变,与原来的中间状态会不一致。升级时也可能会导致中间状态的不一致。而且当计算复杂时,中间状态很多,持久化和恢复的逻辑也比较复杂。(3)同时处理两份数据成本比较高,并需要占用更多的计算资源和存储资源。当处理的数据量大时,所造成的浪费也很大。由此可见,如何在节省硬件资源消耗的前提下,尽量避免节点重启所带来的数据处理滞后的问题,成为本领域技术人员亟待解决的技术问题。
技术实现思路
本申请提供了一种节点重启后的数据处理方法,用以在减少硬件修改成本的前提下,尽量避免节点重启所带来的数据处理滞后问题。该方法应用于包括分布式消息队列以及处理节点的数据处理系统中,包括以下步骤:当所述处理节点重新启动完成后,所述处理节点获取所述分布式消息队列中当前缓存时间最长的遗留数据的时刻;所述处理节点根据当前的时刻以及所述遗留数据的时刻确定恢复周期;所述处理节点在所述恢复周期内处理所述遗留数据以及所述分布式消息队列中的新增数据。优选地,所述数据处理系统还包括存储节点,在所述处理节点重新启动完成之前,还包括:所述处理节点接收计算任务关闭指令;所述处理节点停止从所述分布式消息队列中接收数据,并将自身当前已缓存的数据在处理完毕后写入所述存储节点。优选地,所述处理节点根据当前的时刻以及所述遗留数据的时刻确定恢复周期,具体为:获取所述缓存时间最长的遗留数据所对应的时刻距离当前的时刻的时间长度;生成所述恢复周期,所述恢复周期的时长与所述时间长度一致。优选地,所述处理节点在所述恢复周期内处理所述遗留数据以及所述分布式消息队列中的新增数据,具体为:根据所述恢复周期的单位时间长度依次设置多个处理时间段,并基于所述遗留数据以及所述新增数据为各所述处理时间段分配待处理数据;在各所述处理时间段内处理对应的待处理数据,并在所述恢复周期结束后将所述计算任务恢复为正常处理逻辑。优选地,所述处理时间段由数据处理时间以及数据同步时间按序组成,在各所述处理时间段内处理对应的待处理数据,具体为:在所述数据处理时间内处理所述待处理数据,并在所述数据处理时间结束时将已处理的待处理数据进行存储;若所述数据处理时间结束后存在尚未处理的待处理数据,在所述数据同步时间内将所述尚未处理的待处理数据丢弃。相应的本申请还提出了一种数据处理设备,作为处理节点应用于包括分布式消息队列以及所述处理节点的数据处理系统中,该数据处理设备包括:获取模块,用于当重新启动完成后,获取所述分布式消息队列中当前缓存时间最长的遗留数据的时刻;确定模块,用于根据当前的时刻以及所述遗留数据的时刻确定恢复周期;处理模块,用于在所述恢复周期内处理所述遗留数据以及所述分布式消息队列中的新增数据。优选地,所述数据处理系统还包括存储节点,所述数据处理设备还包括:关闭模块,用于接收计算任务关闭指令,停止从所述分布式消息队列中接收数据,并将自身当前已缓存的数据在处理完毕后写入所述存储节点。优选地,所述确定模块具体包括:获取子模块,获取所述缓存时间最长的遗留数据所对应的时刻距离当前的时刻的时间长度;生成子模块,生成所述恢复周期,所述恢复周期的时长与所述时间长度一致。优选地,所述处理模块具体包括:设置子模块,根据所述恢复周期的单位时间长度依次设置多个处理时间段,并基于所述遗留数据以及所述新增数据为各所述处理时间段分配待处理数据;处理子模块,在各所述处理时间段内处理对应的待处理数据;恢复子模块,所述恢复周期结束后将所述计算任务恢复为正常处理逻辑。优选地,所述处理时间段由数据处理时间以及数据同步时间按序组成,所述处理子模块具体为:在所述数据处理时间内处理所述待处理数据,并在所述数据处理时间结束时将已处理的待处理数据进行存储;若所述数据处理时间结束后存在尚未处理的待处理数据,在所述数据同步时间内将所述尚未处理的待处理数据丢弃。由此可见,通过应用本申请的技术方案,当所述处理节点重新启动完成后,该处理节点获取分布式消息队列中当前缓存时间最长的遗留数据的时刻,根据当前的时刻以及遗留数据的时刻确定恢复周期,并在恢复周期内处理遗留数据以及分布式消息队列中的新增数据。从而避免了由于重启所导致的数据处理间断,消除了对用户感知产生的影响,提升了用户的使用体验。附图说明图1为现有技术中云平台实时监控服务的架本文档来自技高网
...
一种节点重启后的数据处理方法及设备

【技术保护点】
一种节点重启后的数据处理方法,其特征在于,所述方法应用于包括分布式消息队列以及处理节点的数据处理系统中,该方法包括:当所述处理节点重新启动完成后,所述处理节点获取所述分布式消息队列中当前缓存时间最长的遗留数据的时刻;所述处理节点根据当前的时刻以及所述遗留数据的时刻确定恢复周期;所述处理节点在所述恢复周期内处理所述遗留数据以及所述分布式消息队列中的新增数据。

【技术特征摘要】
1.一种节点重启后的数据处理方法,其特征在于,所述方法应用于包括分布式消息队列以及处理节点的数据处理系统中,该方法包括:当所述处理节点重新启动完成后,所述处理节点获取所述分布式消息队列中当前缓存时间最长的遗留数据的时刻;所述处理节点根据当前的时刻以及所述遗留数据的时刻确定恢复周期;所述处理节点在所述恢复周期内处理所述遗留数据以及所述分布式消息队列中的新增数据。2.如权利要求1所述的方法,其特征在于,所述数据处理系统还包括存储节点,在所述处理节点重新启动完成之前,还包括:所述处理节点接收计算任务关闭指令;所述处理节点停止从所述分布式消息队列中接收数据,并将自身当前已缓存的数据在处理完毕后写入所述存储节点。3.如权利要求1所述的方法,其特征在于,所述处理节点根据当前的时刻以及所述遗留数据的时刻确定恢复周期,具体为:获取所述缓存时间最长的遗留数据所对应的时刻距离当前的时刻的时间长度;生成所述恢复周期,所述恢复周期的时长与所述时间长度一致。4.如权利要求1所述的方法,其特征在于,所述处理节点在所述恢复周期内处理所述遗留数据以及所述分布式消息队列中的新增数据,具体为:根据所述恢复周期的单位时间长度依次设置多个处理时间段,并基于所述遗留数据以及所述新增数据为各所述处理时间段分配待处理数据;在各所述处理时间段内处理对应的待处理数据,并在所述恢复周期结束后将所述计算任务恢复为正常处理逻辑。5.如权利要求4所述的方法,其特征在于,所述处理时间段由数据处理时间以及数据同步时间按序组成,在各所述处理时间段内处理对应的待处理数据,具体为:在所述数据处理时间内处理所述待处理数据,并在所述数据处理时间结束时将已处理的待处理数据进行存储;若所述数据处理时间结束后存在尚未处理的待处理数据,在所述数据...

【专利技术属性】
技术研发人员:李灼灵熊奇韩森李巨雷
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1