[发明专利]一种用于顺序消费数据的方法及系统有效
申请号: | 201810657964.1 | 申请日: | 2018-06-25 |
公开(公告)号: | CN109002484B | 公开(公告)日: | 2020-08-07 |
发明(设计)人: | 董晓斌;赵晶;王志海;喻波;董爱华;安鹏 | 申请(专利权)人: | 北京明朝万达科技股份有限公司 |
主分类号: | G06F16/28 | 分类号: | G06F16/28;G06F16/2458 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100097 北京市海淀*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 用于 顺序 消费 数据 方法 系统 | ||
本发明公开了一种用于顺序消费数据的方法及系统,数据生产者客户端连接到数据处理系统,并向数据处理系统发送数据;数据处理系统生产者线程依据接收数据的主题以及当前数据处理系统的分区编号,将数据存储到数据库管理系统中;数据处理系统消费者线程依据当前消费者的ID,获取当前消费者ID对应的分区编号的偏移量;数据消费者线程根据所述分区编号的偏移量从数据处理系统的分区中获取数据,与数据库管理系统存储的数据进行匹配、整合;将匹配、整合完成的数据结果返回给相应的数据消费者客户端。通过本发明的技术方案,解决了Kafka同一个主题多分区的情况下,消费数据的无序问题。
技术领域
本发明涉及数据处理领域,具体涉及一种用于顺序消费数据的方法及系统。
背景技术
MySql作为流行的关系型数据库,其存储性能较高,并且支持数据的有序存储以及查询操作。Kafka作为流行的分布式发布订阅消息系统,支持多生产者向其生产数据消息,且支持多消费者消费生产的数据消息。
Kafka中同一个主题只有一个分区的情况下,消费者在消费数据的过程中顺序消费的。但是在多分区的情况下,消费者无法保证从多个分区拿的数据是按照生产者生产数据的顺序,其只能确保在同一个主题的一个分区中,消费者消费的数据按照数据落地存储到当前分区中的数据的顺序(这也是为什么一个主题只有一个分区的情况下消费的数据是有序的)。
Kafka以及Mysql均支持单机部署以及集群部署,因此在部署服务方面,无论是单机部署还是集群部署,二者可以进行集成部署。
Kafka中的生产者生产数据对应Mysql中的插入数据,消费者消费数据对应Mysql中的读取数据,以及删除数据对应Mysql中的删除数据,且Mysql支持有序插入存储、有序读取。通过结合二者各自的特点,在Kafka一个主题多分区的情况下,依赖Mysql的有序插入以及有序读取的特性,实现多分区消费数据的有序性。
发明内容
为解决上述技术问题,本发明提供了一种用于顺序消费数据的方法,该方法包括以下步骤:
1)数据生产者客户端连接到数据处理系统,并向数据处理系统发送数据;
2)数据处理系统生产者线程依据接收数据的主题以及当前数据处理系统的分区编号,将数据存储到数据库管理系统中;
3)数据消费者客户端连接到所述数据处理系统,数据处理系统消费者线程依据当前消费者的ID,获取当前消费者ID对应的分区编号的偏移量;
4)消费者线程根据所述分区编号的偏移量从数据处理系统不同分区中获取数据,与数据库管理系统存储的数据进行匹配、整合;
5)消费者线程将匹配、整合完成的数据结果返回给相应的数据消费者客户端。
根据本发明的方法,优选的,所述数据处理系统为Kafka消息分布式发布订阅消息系统,所述数据库管理系统为Mysql数据库管理系统。
根据本发明的方法,优选的,在Mysql数据库管理系统中存储的数据包含当前的Kafka的主题名称、分区编号、当前数据的UNIX时间戳以及该数据在Kafka中的分区偏移量。
根据本发明的方法,优选的,Kafka消费者线程依据当前消费者的ID,从其协同工作的zookeeper中获取当前消费者ID对应不同分区ID的偏移量;
将从不同分区中获取的数据的主题以及分区编号,与Mysql中存储的主题、分区编号、偏移量进行关联,将具备相同主题、分区编号以及偏移量的数据合并。
根据本发明的方法,优选的,消费者线程在向消费者返回数据之前,依据合并的数据中的UNIX时间戳进行升序排序,并重新整合数据结果;
消费者线程将整合完成的依赖UNIX时间戳排序之后的数据结果返回给相应的数据消费者客户端。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京明朝万达科技股份有限公司,未经北京明朝万达科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810657964.1/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置