[发明专利]一种数据处理方法、装置、系统、电子设备及存储介质在审
申请号: | 202011039859.5 | 申请日: | 2020-09-28 |
公开(公告)号: | CN112181686A | 公开(公告)日: | 2021-01-05 |
发明(设计)人: | 张永鹏 | 申请(专利权)人: | 北京金山云网络技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54;G06F9/50 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 丁芸;马敬 |
地址: | 100085 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据处理 方法 装置 系统 电子设备 存储 介质 | ||
本发明实施例提供了一种数据处理方法、装置、系统、电子设备及存储介质。该方法包括:在预设数据消费队列中读取待处理数据,执行用于预处理待处理数据的第一预处理操作、用于预存储待处理数据的第二预处理操作及用于预上报偏移量的第三预处理操作,以及在第一预处理操作、第二预处理操作及第三预处理操作中的至少一个操作执行失败时,将数据状态恢复至从预设数据消费队列读取待处理数据之前的状态。本发明实施例,在第一、第二及第三预处理操作中的至少一个操作执行失败时,整个第一、第二及第三预处理操作都失败,使得数据消费的过程满足原子性,避免了使用自动提交偏移量方式所导致的数据丢失,以及对数据重复消费的问题。
技术领域
本发明涉及计算机技术领域,特别是涉及一种数据处理方法、装置、系统、电子设备及存储介质。
背景技术
目前,生产者设备可以将生产的数据发送到卡夫卡Kafka消息队列,以通过该Kafka消息队列对该数据进行存储。另外,消费者设备可以从该Kafka消费队列获取数据进行消费。其中,Kafka消息队列是一种高吞吐量的分布式发布/订阅消息队列。
另外,消费者设备可以配置:在成功写入所读取的数据之后,向Kafka消费队列提交其读取的数据所对应的偏移量(offset),即手动提交偏移量,以告知Kafka消费队列该消费者设备已读取数据的位置。
发明人在实现本发明的过程中发现,消费者设备会存在如下情况:在存储读取到的数据A之后发生异常(例如消费者设备宕机),但是并未提交数据A对应的偏移量。在该种情况下,当消费者设备恢复正常时,会再次从Kafka消费队列读取并存储该数据A,这样就会导致数据A重复消费。
发明内容
本发明实施例的目的在于提供一种数据处理方法、装置、系统、电子设备及存储介质,以避免消费者设备在发生异常时丢失数据。具体技术方案如下:
第一方面,本发明实施例提供了一种数据处理方法,所述方法包括:
在预设数据消费队列中读取待处理数据;
执行用于预处理所述待处理数据的第一预处理操作、用于预存储所述待处理数据的第二预处理操作及用于预上报偏移量的第三预处理操作;
在所述第一预处理操作、所述第二预处理操作及所述第三预处理操作中的至少一个操作执行失败时,将数据状态恢复至从所述预设数据消费队列读取所述待处理数据之前的状态。
可选地,所述方法还包括:
在所述第一预处理操作、所述第二预处理操作及所述第三预处理操作均执行成功时,基于所述第一预处理操作完成对所述待处理数据的处理,基于所述第二预处理操作完成对所述待处理数据的存储,并基于所述第三预处理操作完成上报偏移量。
可选地,所述执行用于预处理所述待处理数据的第一预处理操作、用于预存储所述待处理数据的第二预处理操作及用于预上报偏移量的第三预处理操作,包括:
为用于预处理所述待处理数据的第一预处理操作分配第一服务资源,所述第一服务资源包括计算资源及缓存资源;利用所述第一服务资源执行所述第一预处理操作,得到所述待处理数据的预处理结果;
为用于预存储所述待处理数据的第二预处理操作分配第二服务资源,所述第二服务资源包括计算资源及存储资源;利用所述第二服务资源执行所述第二预处理操作,得到所述待处理数据的预存储结果;
为用于预上报偏移量的第三预处理操作分配第三服务资源,所述第三服务资源包括计算资源、接口资源及缓存资源;利用所述第三服务资源执行所述第三预处理操作,得到所述待处理数据的预上报偏移量结果。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京金山云网络技术有限公司,未经北京金山云网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011039859.5/2.html,转载请声明来源钻瓜专利网。