一种保障数据一致性的处理方法、装置及服务器制造方法及图纸

技术编号:17032877 阅读:121 留言:0更新日期:2018-01-13 19:22
本说明书实施例公开了一种保障数据一致性的处理方法、装置及服务器。所述方法包括:记录数据源的每个队列中数据处理的事件时间。当出现异常时,数据源的所有队列可以回滚到最近一次处理成功的状态,可以通过事件时间将数据源的各队列回退并对齐到一个一致的处理成功的监控计算窗口时间节点。

【技术实现步骤摘要】
一种保障数据一致性的处理方法、装置及服务器
本说明书实施例属于计算机数据处理
,尤其涉及一种保障数据一致性的处理方法、装置及服务器。
技术介绍
随着互联网的发展,许多互联网系统所涉及的业务也越来越多,系统处理的业务数据量剧增。目前,一些业务系统通常会相应的配置有业务监控系统,可以实时监控业务系统的异常情况。业务监控系统可以监控业务数据异常,例如交易下跌等,作为一种告警、分析系统的底层基础数据处理,任何的数据丢失或者数据重复都会给告警,分析产生影响,所以数据的一致性十分重要,对数据一致性要求非常高。为保障实时监控系统中数据的一致性,常用的一种方式包括Flink的分布式快照算法,该算法采用检查点机制+可部分重发的数据源的方式达到一致性功能。Flink的分布式快照算法通过批次的方式保障数据一致性,这种算法需要高可用的状态存储引擎(例如hbase或者hdfs,hbase和hdfs为一种数据存储服务)存储快照数据,在异常时,源头会回滚到上一次状态,要保证全局一致性,merger(状态数据节点)的存储也要回滚到上一次一致性状态,这里的存储状态必须是高可用的,需要较高的技术和硬件实现成本,并且面对类似监控这样的海量数据场景,推广难度也较大。因此,业内需要一种适合于监控场景并且成功更低的数据一致性保障方案。
技术实现思路
本说明书实施例目的在于提供一种保障数据一致性的处理方法、装置及服务器,可以适用于业务数据监控场景中保障数据处理的一致性,降低对高可用状态的存储引擎的依赖,降低成本,提高系统稳定性和吞吐量。本说明书实施例提供的一种保障数据一致性的处理方法、装置及服务器是包括如下的方式实现的:一种保障数据一致性的处理方法,所述方法包括:记录数据源节点的队列的事件时间,所述事件时间包括队列从所述数据源节点读取数据的时间;若接收到数据处理失败的触发消息,则基于所述事件时间确定所述数据源节点的队列上一次数据处理成功的监控计算窗口时间节点;以所述监控计算窗口时间节点作为数据源节点的队列的统一回退时间点重新读取数据源的数据。一种保障数据一致性的处理装置,所述装置包括:事件时间记录模块,用于记录数据源节点的队列的事件时间,所述事件时间包括队列从所述数据源节点读取数据的时间;重读取时间确定模块,用于在接收到数据处理失败的触发消息时,基于所述事件时间确定所述队列在上一次数据处理成功的监控计算窗口时间节点;数据读取模块,用于以所述监控计算窗口时间节点作为数据源节点的队列的统一回退时间点重新读取数据源的数据。一种保障数据一致性的处理装置,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:记录数据源节点的队列的事件时间,所述事件时间包括队列从所述数据源节点读取数据的时间;若接收到数据处理失败的触发消息,则基于所述事件时间确定所述队列在上一次数据处理成功的监控计算窗口时间节点;以所述监控计算窗口时间节点作为数据源节点的队列的统一回退时间点重新读取数据源的数据。一种服务器,包括至少一个处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现:记录数据源节点的队列的事件时间,所述事件时间包括队列从所述数据源节点读取数据的时间;若接收到数据处理失败的触发消息,则基于所述事件时间确定所述队列在上一次数据处理成功的监控计算窗口时间节点;以所述监控计算窗口时间节点作为数据源节点的队列的统一回退时间点重新读取数据源的数据。本说明书一个或多个实施例提供的一种保障数据一致性的处理方法、装置及服务器,结合了业务数据监控场景的监控计算窗口较小的特点,可以记录数据源的每个队列中数据处理的事件时间。当出现异常时,数据源的所有队列可以回滚到最近一次处理成功的状态,可以通过事件时间将数据源的各队列回退并对齐到一个一致的处理成功的监控计算窗口时间节点,避免了对高可用存储快照状态的存储引擎的依赖,使用本地磁盘或者内存等就可以达到保障数据一致性计算的能力,大大减少计算成本和数据存储成本。同时,由于舍弃了保留快照状态的高可用存储引擎,实施本申请方案还可以减少与高可用存储的网络交互,减少外界系统依赖,提高系统稳定性以及吞吐量。附图说明为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本说明书提供的所述一种保障数据一致性的处理方法实施例的流程示意图;图2是本说明书所述方法在一种监控场景实施例中的处理过程示意图;图3是本说明书提供的所述方法的另一个实施例的方法流程示意图;图4是本说明书提供的所述方法的另一个实施例的方法流程示意图;图5是本说明书提供的一种保障数据一致性的处理装置实施例的模块结构示意图;图6是本说明书提供的所述装置另一个实施例的模块结构示意图;图7是本说明书提供的所述装置中重读取时间确定模块一个实施例的模块结构示意图;图8是本本说明书提供的所述装置另一个实施例的模块结构示意图;图9是本说明书提供的所述服务器一个实施例的结构示意图。具体实施方式为了使本
的人员更好地理解本说明书中的技术方案,下面将结合本说明书一个或多个实施例中的附图,对本说明书一个或多个实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是说明书一部分实施例,而不是全部的实施例。基于说明书一个或多个实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书实施例方案保护的范围。常规的Flink的分布式快照算法,采用检查点机制+可部分重发的数据源的方式达到一致性功能。一般的,主要的实施过程包括检查点定期触发,产生快照,快照中记录了当前检查点开始时数据源(例如Kafka,一种高吞吐量的分布式发布订阅消息系统)中消息的offset(偏移量),以及记录了所有有状态的operator(操作者)当前的状态信息(例如sum中的数值)。Flink可以选择最近完成的检查点K,然后系统重放整个分布式的数据流,给予每个operator在检查点K快照中的状态信息。数据源被设置为从偏移量位置Sk开始重新读取流。在异常时,数据源会回滚到上一次状态,要保证全局一致性,merger节点(状态数据节点)的存储也要回滚到上一次一致性状态。这种算法需要保证快照高可用,所以通常hbase或者hdfs作为这种算法的首选存储引擎。所述的merger在flink方案中为状态数据节点,可以用于状态数据的存储读取合并等,通常实时计算中,可以连接hbase或者hdfs等高可用存储。在本说明书的一个或多个实施例中,可以使用本地磁盘替代为非高可用存储,大幅降低成本,并减少与外部存储引擎的交互,使得系统更加稳定、可靠,减少交互消耗,可以提高系统吞吐量。本说明书提供的一个或多个障数据一致性的处理方法的实施例方案中,可以基于flink分布式快照的实现,结合监控场景的特有特点,(监控计算窗口小,通常只计算一分钟数据,一旦一分钟的数据完整,在一些实施例中这分钟的快照状态就可以丢弃,不需要高可用的存储引擎进去保留)提出了一套新的适合于监控场景的本文档来自技高网
...
一种保障数据一致性的处理方法、装置及服务器

【技术保护点】
一种保障数据一致性的处理方法,所述方法包括:记录数据源节点的队列的事件时间,所述事件时间包括队列从所述数据源节点读取数据的时间;若接收到数据处理失败的触发消息,则基于所述事件时间确定所述数据源节点的队列上一次数据处理成功的监控计算窗口时间节点;以所述监控计算窗口时间节点作为数据源节点的队列的统一回退时间点重新读取数据源的数据。

【技术特征摘要】
1.一种保障数据一致性的处理方法,所述方法包括:记录数据源节点的队列的事件时间,所述事件时间包括队列从所述数据源节点读取数据的时间;若接收到数据处理失败的触发消息,则基于所述事件时间确定所述数据源节点的队列上一次数据处理成功的监控计算窗口时间节点;以所述监控计算窗口时间节点作为数据源节点的队列的统一回退时间点重新读取数据源的数据。2.如权利要求1所述的一种保障数据一致性的处理方法,重新读取所述数据源的数据之后,所述方法还包括:以所述统一回退时间点对所述重新读取数据源节点的数据进行过滤,删除所述统一回退时间点之前的数据。3.如权利要求1或2中任意一项所述的一种保障数据一致性的处理方法,所述基于所述事件时间确定所述数据源节点的队列上一次数据处理成功的监控计算窗口时间节点包括:获取所述数据源中队列上一次数据处理成功的时间点,根据所述时间点中队列消费的偏移量确定上一个监控计算窗口的时间节点。4.如权利要求1或2中任意一项所述的一种保障数据一致性的处理方法,所述基于所述事件时间确定所述队列在上一次数据处理成功的监控计算窗口时间节点包括:获取所述数据源中队列上一次数据处理成功的时间点,对所述时间点中时间最早的时间点进行所述监控计算窗口时间单位级别的格式化,得到所述上一次数据处理成功的监控计算窗口时间节点。5.如权利要求2中所述的一种保障数据一致性的处理方法,所述方法还包括:本地持久化当前监控计算窗口内处理成功的数据的状态数据;以及,在重新读取所述数据源的数据之后,删除本地持久化的状态数据,并本地持久化所述重新读取数据源的数据被处理的状态数据。6.如权利要求5中所述的一种保障数据一致性的处理方法,使用磁盘或内存数据存储所述状态数据。7.一种保障数据一致性的处理装置,所述装置包括:事件时间记录模块,用于记录数据源节点的队列的事件时间,所述事件时间包括队列从所述数据源节点读取数据的时间;重读取时间确定模块,用于在接收到数据处理失败的触发消息时,基于所述事件时间确定所述队列在上一次数据处理成功的监控计算窗口时间节点;数据读取模块,用于以所述监控计算窗口时间节点作为数据源节点的队列的统一回退时间点重新...

【专利技术属性】
技术研发人员:许溢天庞磊王安红
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1