消息队列的消费方法及装置制造方法及图纸

技术编号:15220218 阅读:63 留言:0更新日期:2017-04-26 20:13
本发明专利技术公开了一种消息队列的消费方法及装置,至少能够解决现有技术中以恒定消费速度进行消费的方式所存在的容易导致消费失败现象的问题。该消息队列的消费方法包括:分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。

Method and apparatus for consumption of message queue

The invention discloses a method and a device for consumption of a message queue, which can at least solve the problem that the consumption of the phenomenon is easy to lead to the phenomenon of failure in the consumption of a constant consumption rate in the prior art. Including the consumption method of the message queue: for each message in the message queue partition corresponding to the end consumer spending, the current consumption offset regular access to various consumer terminal corresponding information partition and the maximum effective offset; offset current consumption according to the consumption end corresponding information partition and maximum effective offset determined remaining consumption each end of the corresponding message consumer partition; according to each end of the corresponding message consumer partition remaining consumption, dynamic adjustment of each consumer end consumption rate.

【技术实现步骤摘要】

本专利技术涉及通信
,具体涉及一种消息队列的消费方法及装置。
技术介绍
目前,当业务前端生产者产生消息之后,通常是将待处理的消息存储于消息队列的消息分区中,然后交由后端的消费端进行处理。在现有技术中,各个消费端对消息分区中的消息进行消费时,消费速度往往是恒定不变的。但是,专利技术人在实现本专利技术的过程中发现,现有技术中的上述方式至少存在下述缺陷:恒定的消费速度无法根据消息分区中的剩余可消费量进行动态调整,因此,当某个消息分区中的消息数据较少时则很可能导致消费失败的现象,由此产生错误数据,甚至影响整个数据处理系统的正常运行。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的消息队列的消费方法及装置。根据本专利技术的一个方面,提供了一种消息队列的消费方法,包括:分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。根据本专利技术的另一个方面,提供了一种消息队列的消费装置,包括:获取模块,适于分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;确定模块,适于根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;第一调整模块,适于根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。在本专利技术提供的一种消息队列的消费方法及装置中,能够定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移,并据此确定各个消费端对应的消息分区的剩余可消费量,进而根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。由此可见,本专利技术中的各个消费端的消费速度可以根据当前剩余可消费量进行动态调整,从而有效避免了消费失败的现象,提高了消息处理的正确性,为整个数据处理系统的正常运行提供了有利保障。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本专利技术的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:图1示出了本专利技术实施例一提供的一种消息队列的消费方法的流程示意图;图2示出了本专利技术实施例二提供的一种消息队列的消费方法的流程示意图;图3示出了本专利技术实施例三提供的一种消息队列的消费装置的结构示意图;图4示出了本专利技术实施例四提供的一种消息队列的消费装置的结构示意图。具体实施方式下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。本专利技术实施例提供了一种消息队列的消费方法及装置,至少能够解决现有技术中以恒定消费速度进行消费的方式所存在的容易导致消费失败现象的技术问题。实施例一图1示出了本专利技术实施例一提供的一种消息队列的消费方法的流程示意图。如图1所示,该方法包括以下步骤:步骤S110:分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。其中,可以根据消息队列中的各个消息分区的数量设定消费端的数量,在一种设定方式中,消费端的数量等于消息队列中的各个消息分区的数量,此时,消费端与消息分区为一一对应的关系,相应地,一个消费端固定负责消费对应的一个消息分区中的消息,该种方式能够最大程度地避免多个消费端之间相互干扰、以及消费混乱的情况发生。在另一种设定方式中,消费端的数量大于消息队列中的各个消息分区的数量,此时,消费端与消息分区为多对一的关系,该种方式能够通过多个消费端同时读取一个消息分区中的消息,从而有效提升了消息读取过程的可靠性。在其他的设定方式中,消费端的数量小于消息队列中的各个消息分区的数量,此时,消费端与消息分区可以为一对多的关系,该种方式能够通过一个消费端读取多个消息分区中的消息,能够在消息分区数量较多时有效防止因消费端数量过多而带来的系统开销增大的问题。总之,本领域技术人员可以根据消息分区的数量、系统开销以及具体应用场景灵活地为各个消息分区分配消费端,本专利技术对具体的分配方式不做限定。具体地,在各个消费端进行消费的过程中,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移,其中,当前消费偏移反映了该消费端当前已消费数据的偏移信息,最大有效偏移反映了该消费端对应的消息分区中的可消费数据的最大偏移信息。例如,假设一个消息分区中目前已写入了1000条消息,这1000条消息均处于可读取的有效状态,则该消息分区的最大有效偏移为1000;假设负责消费该消息分区的消费端目前已读取至第50条消息,则该消费端对应的消息分区的当前消费偏移为50。步骤S120:根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量。具体地,各个消费端对应的消息分区的剩余可消费量可以根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。例如,以上例为例,当消息分区的最大有效偏移为1000,消费端对应的消息分区的当前消费偏移为50时,该消费端对应的消息分区的剩余可消费量为950。步骤S130:根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。具体地,动态调整方式可由本领域技术人员灵活设定,本专利技术对具体的调整方式不做限定。在一种实现方式中,可以判断各个消费端的当前消费速度与其对应的消息分区的剩余可消费量是否匹配,若判断结果为否,则调整该消费端的当前消费速度,使之与其对应的消息分区的剩余可消费量匹配。例如,若某一消费端的剩余可消费量小于预设时间段内按照该消费端的当前消费速度的消费量时,将该消费端的当前消费速度减小为与该消费端的剩余可消费量相匹配的数值;和/或,若某一消费端的剩余可消费量大于预设时间段内按照该消费端的当前消费速度的消费量时,将该消费端的当前消费速度增大为与该消费端的剩余可消费量相匹配的数值。由此可见,在本专利技术实施例提供的消息队列的消费装置中,首先分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;然后根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;最后根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。因此,本专利技术中的各个消费端的消费速度可以根据当前剩余可消费量进行动态调整,从而有效避免了消费失败的现象,提高了消息处理本文档来自技高网...

【技术保护点】
一种消息队列的消费方法,包括:分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。

【技术特征摘要】
1.一种消息队列的消费方法,包括:分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。2.根据权利要求1所述的方法,其中,各个消费端对应的消息分区的剩余可消费量根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。3.根据权利要求1或2所述的方法,其中,所述根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度的步骤具体包括:将各个消费端对应的消息分区的剩余可消费量中的最小值确定为最小可消费量;将所述最小可消费量对应的消费端的消费速度确定为参考消费速度;根据所述最小可消费量调整所述参考消费速度。4.根据权利要求3所述的方法,其中,所述根据所述最小可消费量调整所述参考消费速度的步骤具体包括:当所述最小可消费量小于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度减小为与所述最小可消费量相匹配的数值;和/或,当所述最小可消费量大于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度增大为与所述最小可消费量相匹配的数值。5.根据权利要求4所述的方法,其中,所述方法进一步包括:根据其他消费端对应的消息分区的剩余可消费量与所述最小可消费量之间的比...

【专利技术属性】
技术研发人员:邓怡豪
申请(专利权)人:北京奇虎科技有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1