[发明专利]Kafka消息执行方法、装置、设备及存储介质有效
申请号: | 202211592508.6 | 申请日: | 2022-12-13 |
公开(公告)号: | CN115604290B | 公开(公告)日: | 2023-03-24 |
发明(设计)人: | 马腾;陈恩泽 | 申请(专利权)人: | 云账户技术(天津)有限公司 |
主分类号: | H04L67/1095 | 分类号: | H04L67/1095;H04L67/1097;H04L67/568 |
代理公司: | 北京银龙知识产权代理有限公司 11243 | 代理人: | 罗仕满 |
地址: | 300384 天津市滨海新区华苑产*** | 国省代码: | 天津;12 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | kafka 消息 执行 方法 装置 设备 存储 介质 | ||
本发明提供一种Kafka消息执行方法、装置、设备及存储介质,其中方法包括:分配步骤、初始化步骤、第一执行步骤:提取目标分区中存储的全部消息,将全部消息存储至目标分区对应的消息热备装置的公共缓存中得到目标消息热备装置;第二执行步骤:以当前的目标分区的后一级分区为新的目标分区,执行第一执行步骤,直至最后一级分区;第三执行步骤:并行执行目标消息热备装置中的全部消息,检测当前的目标消息热备装置中的消息是否全部执行;若当前的目标消息热备装置中的消息全部执行,以下一个目标消息热备装置为新的目标消息热备装置执行第二执行步骤,直至最后一个目标消息热备装置。本发明能够实现Kafka的消息高效并行执行。
技术领域
本发明实施例涉及计算机技术领域,尤其涉及一种Kafka消息执行方法、装置、设备及存储介质。
背景技术
业务服务在启动时会根据需要监听不同的Kafka消息的不同的Topic(主题),从而做各类型的消息处理任务。由于Kafka分片(partition)存储的机制,同一个Topic的消息生产者,生产的消息会推送到不同的partition中进行存储。在并发场景下,会有对应partition数据量的执行线程对同一个Topic中的消息进行执行。
然而,基于Kafka的分片存储机制,1个partition最多只能被1个执行线程执行,并且同一个partition中的消息只能按照消息顺序依次执行,使得现有的Kafka消息的并发效率低。
发明内容
本发明实施例提供一种Kafka消息执行方法、装置、设备及存储介质,以解决现有Kafka消息的并发效率低的问题。
为了解决上述技术问题,本发明是这样实现的:
第一方面,本发明实施例提供了一种Kafka消息执行方法,包括:
分配步骤:为Kafka集群中的每一分区分配对应的消息热备装置,每个所述消息热备装置中均预分配有公共缓存;
初始化步骤:以所述Kafka集群中最前一级分区为目标分区;
第一执行步骤:提取所述目标分区中存储的全部消息,将所述全部消息存储至所述目标分区对应的消息热备装置的公共缓存中得到目标消息热备装置;
第二执行步骤:以当前的所述目标分区的后一级分区为新的所述目标分区,执行所述第一执行步骤,直至所述目标分区为所述Kafka集群中最后一级分区;
第三执行步骤:并行执行所述目标消息热备装置中的所述全部消息,检测当前的所述目标消息热备装置中的消息是否全部执行,得到检测结果;若检测结果为当前的所述目标消息热备装置中的消息全部执行,以下一个所述目标消息热备装置为新的所述目标消息热备装置,执行所述第二执行步骤,直至所述目标消息热备装置为最后一个所述目标消息热备装置。
可选地,
所述公共缓存为Redis缓存。
可选地,
并行执行所述目标消息热备装置中的所述全部消息,包括:
每执行完成一消息,删除执行完成后的消息。
可选地,
检测当前的所述目标消息热备装置中的消息是否全部执行,包括:
校验当前的所述目标消息热备装置的公共缓存中是否存储有消息,得到校验结果;若所述校验结果为所述目标消息热备装置的公共缓存中未存储有消息,确定所述目标消息热备装置中的消息全部执行。
第二方面,本发明实施例提供了一种Kafka消息执行装置,包括:
分配模块,用于分配步骤:为Kafka集群中的每一分区分配对应的消息热备装置,每个所述消息热备装置中均预分配有公共缓存;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于云账户技术(天津)有限公司,未经云账户技术(天津)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202211592508.6/2.html,转载请声明来源钻瓜专利网。