【技术实现步骤摘要】
基于Kafka的并发消费方法、装置、设备和介质
[0001]本申请涉及计算机
,特别是涉及一种基于Kafka的并发消费方法、装置、设备和介质。
技术介绍
[0002]Kafka是由Apache软件基金会开发的一个开源流处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。Kafka的目的是通过Hadoop的并行加载机制来统一线上和离线的消息处理,也是为了通过集群来提供实时的消息。
[0003]消息中间件主要用于需要可靠的数据传输的分布式系统,采用消息中间件机制的系统中,不同的对象之间通过传递消息来完成系统间的交互。消息发送者将消息发送给消息服务器,消息服务器将消息存放系统中,在合适的时候将消息转发给接收者。消息中间件能在不同平台之间通信,它常被用来屏蔽掉各种平台及协议之间的特性,实现应用程序之间同步或异步的协同。
[0004]Kafka生产、存储、消费都是基于流式架构 ...
【技术保护点】
【技术特征摘要】
1.一种基于Kafka的并发消费方法,其特征在于,包括:响应于检测到拉取处理线程完成消息拉取,根据topic以及所述topic的分区分组,并将消息发至对应分组的所述topic的消息队列中;每个所述topic的消息队列将对应消息发送至对应topic处理线程,并由所述topic处理线程将所述对应消息提交给分区线程池并发消费;响应于检测到任一待提交消息顺序前的所有消息的消费状态均为已消费,对应所述topic处理线程将所述当前待提交消息顺序前的所有消息对应offset提交到commit队列中,并由所述commit队列返回至所述拉取处理线程中。2.根据权利要求1所述的基于Kafka的并发消费方法,其特征在于,所述方法还包括:响应于检测到任一待提交消息以及所述待提交消息顺序前的所有消息的消费状态均为已消费,对应所述topic处理线程将所述当前待提交消息以及所述当前待提交消息顺序前的所有消息对应offset提交到commit队列中,并由所述commit队列返回至所述拉取处理线程中。3.根据权利要求1或2所述的基于Kafka的并发消费方法,其特征在于,所述方法还包括:根据批量提交参数配置生成对应消息提交数量的位数的bitset,所述bitset中按照前后顺序每一状态位用于描述对应顺序的待提交消息的所述消费状态;响应于检测到所述待提交消息的消费状态发生变化,更新所述待提交消息对应状态位。4.根据权利要求3所述的基于Kafka的并发消费方法,其特征在于,所述状态位包括0和1中至少一种,其中0用于描述所述消费状态为未消费,1用于描述所述消费状态为已消费。5.根据权利要求4所述的基于Kafka的并发消费方法,其特征在于,所述响应于检测到任一待提交消息顺序前的所有消息的消费状态均为已消费,对应所述topic处理线程将所述当前待提交消息顺序前的所有消息对应offset提交到commit队列中,并由所述commit队列返回至所述拉取处理线程中,包括:响应于检测到任一待提交消息顺序前的所有消息对应所述bitset中的状态位均为1,对应所述topic处理线程将所述当前待提交消息顺序前的所有消息对应offset提交到commit队列中,并由所述commit队列返回至所述拉取处理线程中;所述响应于检测到任一待提交消息以及所述待提...
【专利技术属性】
技术研发人员:熊杰,
申请(专利权)人:众安在线财产保险股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。