The invention discloses a message processing method, a device and a computer-readable storage medium. The method comprises steps of starting a standby consumer thread and a new consumer thread after a failure of an old consumer thread; the standby consumer thread obtains a first offset position from a preset cache, and from a manager zookeepe. The second offset position is obtained in r; a message written in real time by the consumer server according to the first offset position and the second offset position; the new consumer thread consumes a message written in real time by the server according to the second offset position. The invention consumes non-real-time and real-time written messages by the standby consumer thread and the new consumer thread consumption server; on the one hand, it can ensure that the latest messages can be processed, reduce the delay of message processing, on the other hand, it can ensure that the messages during the failure of the consumer thread can be supplemented and not lost.
【技术实现步骤摘要】
消息处理方法、设备及计算机可读存储介质
本专利技术涉及通信
,尤其涉及一种消息处理方法、设备及计算机可读存储介质。
技术介绍
Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。这种动作(网页浏览,搜索和其他用户的行动)是在现代网络上的许多社会功能的一个关键因素。这些数据通常是由于吞吐量的要求而通过处理日志和日志聚合来解决。Kafka的目的是通过Hadoop(一个由Apache基金会所开发的分布式系统基础架构)的并行加载机制来统一线上和离线的消息处理,也是为了通过集群机来提供实时的消费。Kafka应用在大数据统计过程中,是针对大数据量的数据进行消息的产生、消息的消费来使用的。其中,消息的生产,是直接由生产者向Kafka进行消息的发送;消息的消费,是由消费者线程来进行消息的消费操作。因为在很多的生产环境中,都必须使用Kafka集群的方式来消除单点故障,所以消费者线程均是连接到整个Kafka集群中进行消息的消费动作。Kafka的消费者线程数与topic(主题)的partition(区分)有关系(一类消息有一个主题,每个主题创建时,需要固定该主题的分区数)。在某一时刻,一个partition只能有一个消费者线程能连接上。现有消费方式存在的问题是:当大量消息写入而消费者线程宕机停止后,重新启动消费者线程,则消费者线程均从kafka内部自带的zookeeper记录的位置开始消费数据;如果宕机时间较长,堆积了较多需要消费的数据,则处理这些非实时的数据需要时间,这就导致最新的数据不能实时的进行消费处理,增加了处理延时时间 ...
【技术保护点】
1.一种消息处理方法,其特征在于,所述方法包括:在旧消费者线程发生故障后,启动备用消费者线程和新消费者线程;所述备用消费者线程从预设缓存中获取第一偏移量位置,并从管理者zookeeper中获取第二偏移量位置;根据所述第一偏移量位置和所述第二偏移量位置消费服务器非实时写入的消息;其中,所述第一偏移量位置为所述旧消费者线程消费服务器消息后的偏移量位置;所述新消费者线程根据所述第二偏移量位置消费服务器实时写入的消息。
【技术特征摘要】
1.一种消息处理方法,其特征在于,所述方法包括:在旧消费者线程发生故障后,启动备用消费者线程和新消费者线程;所述备用消费者线程从预设缓存中获取第一偏移量位置,并从管理者zookeeper中获取第二偏移量位置;根据所述第一偏移量位置和所述第二偏移量位置消费服务器非实时写入的消息;其中,所述第一偏移量位置为所述旧消费者线程消费服务器消息后的偏移量位置;所述新消费者线程根据所述第二偏移量位置消费服务器实时写入的消息。2.根据权利要求1所述的消息处理方法,其特征在于,所述根据所述第一偏移量位置和所述第二偏移量位置消费服务器非实时写入的消息包括步骤:判断所述第一偏移量位置和所述第二偏移量位置是否相同;若所述第一偏移量位置和所述第二偏移量位置不相同,则所述备用消费者线程消费所述第一偏移量位置和所述第二偏移量位置之间的消息。3.根据权利要求2所述的消息处理方法,其特征在于,所述备用消费者线程消费所述第一偏移量位置和所述第二偏移量位置之间的消息包括步骤:所述备用消费者线程启动多线程,并通过所述多线程消费所述第一偏移量位置和所述第二偏移量位置之间的消息。4.根据权利要求2所述的消息处理方法,其特征在于,所述若所述第一偏移量位置和所述第二偏移量位置不相同,则所述备用消费者线程消费所述第一偏移量位置和所述第二偏移量位置之间的消息之后还包括步骤:若所述第一偏移量位置和所述第二偏移量位置之间的消息已经消费完毕,则关...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。