CN106598760A - 消息队列的消费方法及装置 - Google Patents
消息队列的消费方法及装置 Download PDFInfo
- Publication number
- CN106598760A CN106598760A CN201611178259.0A CN201611178259A CN106598760A CN 106598760 A CN106598760 A CN 106598760A CN 201611178259 A CN201611178259 A CN 201611178259A CN 106598760 A CN106598760 A CN 106598760A
- Authority
- CN
- China
- Prior art keywords
- consumption
- terminal
- skew
- message
- partition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000005192 partition Methods 0.000 claims abstract description 265
- 241000208340 Araliaceae Species 0.000 claims description 3
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 claims description 3
- 235000003140 Panax quinquefolius Nutrition 0.000 claims description 3
- 235000008434 ginseng Nutrition 0.000 claims description 3
- 230000008569 process Effects 0.000 description 10
- 230000002349 favourable effect Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000004907 flux Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001035 drying Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007670 refining Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/548—Queue
Abstract
本发明公开了一种消息队列的消费方法及装置,至少能够解决现有技术中以恒定消费速度进行消费的方式所存在的容易导致消费失败现象的问题。该消息队列的消费方法包括:分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
Description
技术领域
本发明涉及通信技术领域,具体涉及一种消息队列的消费方法及装置。
背景技术
目前,当业务前端生产者产生消息之后,通常是将待处理的消息存储于消息队列的消息分区中,然后交由后端的消费端进行处理。在现有技术中,各个消费端对消息分区中的消息进行消费时,消费速度往往是恒定不变的。
但是,发明人在实现本发明的过程中发现,现有技术中的上述方式至少存在下述缺陷:恒定的消费速度无法根据消息分区中的剩余可消费量进行动态调整,因此,当某个消息分区中的消息数据较少时则很可能导致消费失败的现象,由此产生错误数据,甚至影响整个数据处理系统的正常运行。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的消息队列的消费方法及装置。
根据本发明的一个方面,提供了一种消息队列的消费方法,包括:分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
根据本发明的另一个方面,提供了一种消息队列的消费装置,包括:获取模块,适于分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;确定模块,适于根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;第一调整模块,适于根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
在本发明提供的一种消息队列的消费方法及装置中,能够定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移,并据此确定各个消费端对应的消息分区的剩余可消费量,进而根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。由此可见,本发明中的各个消费端的消费速度可以根据当前剩余可消费量进行动态调整,从而有效避免了消费失败的现象,提高了消息处理的正确性,为整个数据处理系统的正常运行提供了有利保障。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例一提供的一种消息队列的消费方法的流程示意图;
图2示出了本发明实施例二提供的一种消息队列的消费方法的流程示意图;
图3示出了本发明实施例三提供的一种消息队列的消费装置的结构示意图;
图4示出了本发明实施例四提供的一种消息队列的消费装置的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种消息队列的消费方法及装置,至少能够解决现有技术中以恒定消费速度进行消费的方式所存在的容易导致消费失败现象的技术问题。
实施例一
图1示出了本发明实施例一提供的一种消息队列的消费方法的流程示意图。如图1所示,该方法包括以下步骤:
步骤S110:分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。
其中,可以根据消息队列中的各个消息分区的数量设定消费端的数量,在一种设定方式中,消费端的数量等于消息队列中的各个消息分区的数量,此时,消费端与消息分区为一一对应的关系,相应地,一个消费端固定负责消费对应的一个消息分区中的消息,该种方式能够最大程度地避免多个消费端之间相互干扰、以及消费混乱的情况发生。在另一种设定方式中,消费端的数量大于消息队列中的各个消息分区的数量,此时,消费端与消息分区为多对一的关系,该种方式能够通过多个消费端同时读取一个消息分区中的消息,从而有效提升了消息读取过程的可靠性。在其他的设定方式中,消费端的数量小于消息队列中的各个消息分区的数量,此时,消费端与消息分区可以为一对多的关系,该种方式能够通过一个消费端读取多个消息分区中的消息,能够在消息分区数量较多时有效防止因消费端数量过多而带来的系统开销增大的问题。总之,本领域技术人员可以根据消息分区的数量、系统开销以及具体应用场景灵活地为各个消息分区分配消费端,本发明对具体的分配方式不做限定。
具体地,在各个消费端进行消费的过程中,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移,其中,当前消费偏移反映了该消费端当前已消费数据的偏移信息,最大有效偏移反映了该消费端对应的消息分区中的可消费数据的最大偏移信息。例如,假设一个消息分区中目前已写入了1000条消息,这1000条消息均处于可读取的有效状态,则该消息分区的最大有效偏移为1000;假设负责消费该消息分区的消费端目前已读取至第50条消息,则该消费端对应的消息分区的当前消费偏移为50。
步骤S120:根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量。
具体地,各个消费端对应的消息分区的剩余可消费量可以根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。例如,以上例为例,当消息分区的最大有效偏移为1000,消费端对应的消息分区的当前消费偏移为50时,该消费端对应的消息分区的剩余可消费量为950。
步骤S130:根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
具体地,动态调整方式可由本领域技术人员灵活设定,本发明对具体的调整方式不做限定。在一种实现方式中,可以判断各个消费端的当前消费速度与其对应的消息分区的剩余可消费量是否匹配,若判断结果为否,则调整该消费端的当前消费速度,使之与其对应的消息分区的剩余可消费量匹配。例如,若某一消费端的剩余可消费量小于预设时间段内按照该消费端的当前消费速度的消费量时,将该消费端的当前消费速度减小为与该消费端的剩余可消费量相匹配的数值;和/或,若某一消费端的剩余可消费量大于预设时间段内按照该消费端的当前消费速度的消费量时,将该消费端的当前消费速度增大为与该消费端的剩余可消费量相匹配的数值。
由此可见,在本发明实施例提供的消息队列的消费装置中,首先分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;然后根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;最后根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。因此,本发明中的各个消费端的消费速度可以根据当前剩余可消费量进行动态调整,从而有效避免了消费失败的现象,提高了消息处理的正确性,为整个数据处理系统的正常运行提供了有利保障。
实施例二
图2示出了本发明实施例二提供的一种消息队列的消费方法的流程示意图。如图2所示,该方法包括以下步骤:
步骤S210:分别为消息队列中的各个消息分区分配对应的消费端进行消费。
具体地,可以根据消息队列中的各个消息分区的数量设定消费端的数量,在一种设定方式中,消费端的数量等于消息队列中的各个消息分区的数量,此时,消费端与消息分区为一一对应的关系,相应地,一个消费端固定负责消费对应的一个消息分区中的消息,该种方式能够最大程度地避免多个消费端之间相互干扰、以及消费混乱的情况发生。在另一种设定方式中,消费端的数量大于消息队列中的各个消息分区的数量,此时,消费端与消息分区为多对一的关系,该种方式能够通过多个消费端同时读取一个消息分区中的消息,从而有效提升了消息读取过程的可靠性。在其他的设定方式中,消费端的数量小于消息队列中的各个消息分区的数量,此时,消费端与消息分区可以为一对多的关系,该种方式能够通过一个消费端读取多个消息分区中的消息,能够在消息分区数量较多时有效防止因消费端数量过多而带来的系统开销增大的问题。总之,本领域技术人员可以根据消息分区的数量、系统开销以及具体应用场景灵活地为各个消息分区分配消费端,本发明对具体的分配方式不做限定。
在本实施例中,以第一种分配方式为例进行说明。具体实施时,多个消费端之间可以通过多线程并行处理的方式并行消费对应的消息分区中的消息数据。
步骤S220:定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。
具体地,在各个消费端进行消费的过程中,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。其中,当前消费偏移反映了相应的消费端当前已消费数据的偏移信息,因此,当前消费偏移与具体的消费端密切相关,例如,当两个消费端同时负责消费一个消息分区中的消息数据时,由于两个消费端的消费进度可能不同,因此,每个消费端所对应的当前消费偏移也可能不同。最大有效偏移反映了消费端对应的消息分区中的可消费数据的最大偏移信息,因此,最大有效偏移与具体的消费端无关,即:当两个消费端同时负责消费一个消息分区中的消息数据时,即使两个消费端的消费进度不同,但同一时间内每个消费端所对应的消息分区的最大有效偏移必然相同。例如,假设一个消息分区中目前已写入了1000条消息,这1000条消息均处于可读取的有效状态,则该消息分区的最大有效偏移为1000;假设负责消费该消息分区的消费端一目前已读取至第50条消息,则该消费端一对应的消息分区的当前消费偏移为50;假设负责消费该消息分区的消费端二目前已读取至第150条消息,则该消费端二对应的消息分区的当前消费偏移为150。
另外,为了能够在整个消息消费期间动态调整消费速度,本步骤及其后续步骤均为多次循环执行的步骤,具体的执行周期可由本领域技术人员灵活设定,本发明对此不做限定。例如,在一种设置方式中,每当消费端读取一条数据后即执行一次本步骤及其后续步骤,从而获取该消费端对应的消息分区的当前消费偏移以及最大有效偏移。在另一种设置方式中,每隔预设时间间隔即执行一次本步骤及其后续步骤,从而获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。其中,预设时间间隔可由本领域技术人员灵活设置,例如,可以结合各个消息分区的消息写入速度、近期消费速度、剩余可消费量等多种因素进行设置并调整。
步骤S230:根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量。
具体地,各个消费端对应的消息分区的剩余可消费量可以根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。例如,以上例为例,当消息分区的最大有效偏移为1000,消费端对应的消息分区的当前消费偏移为50时,该消费端对应的消息分区的剩余可消费量为950。由此可见,剩余可消费量实际上反映了一个消息分区中剩余可消费的消息数量,一个消息分区的剩余可消费量越大,说明该消息分区中可供消费的消息数量越多;一个消息分区的剩余可消费量越小,说明该消息分区中可供消费的消息数量越少。
步骤S240:将各个消费端对应的消息分区的剩余可消费量中的最小值确定为最小可消费量,将该最小可消费量对应的消费端的消费速度确定为参考消费速度,根据最小可消费量调整参考消费速度。
本步骤的执行目的在于对剩余可消费量最小的消费端的消费速度进行调整。首先,确定剩余可消费量最小的消费端,将剩余可消费量最小的消费端的当前消费速度确定为参考消费速度,然后,根据该消费端的实际剩余可消费量调整该消费端的消费速度。具体地,在根据最小可消费量调整参考消费速度时,当最小可消费量小于预设时间段内按照参考消费速度的消费量时,将参考消费速度减小为与最小可消费量相匹配的数值;和/或,当最小可消费量大于预设时间段内按照参考消费速度的消费量时,将参考消费速度增大为与最小可消费量相匹配的数值。
步骤S250:根据其他消费端对应的消息分区的剩余可消费量与最小可消费量之间的比例关系以及调整后的参考消费速度,对其他消费端的消费速度进行动态调整。
本步骤的执行目的在于对除剩余可消费量最小的消费端之外的其他消费端的消费速度进行调整,以使各个消费端的消费速度尽可能与其剩余可消费量相匹配。为了便于理解本发明,下面以几个具体的示例详细描述步骤S240与步骤S250的实现方式:
示例一:
假设共有三个消息分区以及三个消费端,消费端一对应的消息分区一的剩余可消费量为100(条),消费端二对应的消息分区二的剩余可消费量为200(条),消费端三对应的消息分区三的剩余可消费量为800(条),并且,三个消费端的当前消费速度均为200(条/秒)。
相应地,各个消费端对应的消息分区的剩余可消费量中的最小值为100,即:最小可消费量为100。另外,由于最小可消费量对应的消费端为消费端一,其消费速度为200(条/秒),因此,参考消费速度为200(条/秒),在根据最小可消费量(100)调整参考消费速度(200)时,由于最小可消费量小于1秒内按照参考消费速度的消费量,因此,将参考消费速度减小为100(条/秒),以使参考消费速度与最小可消费量相匹配,从而防止因可消费量不足而导致的消费失败现象。
然后,进一步根据其他消费端对应的消息分区的剩余可消费量与最小可消费量之间的比例关系以及调整后的参考消费速度,对其他消费端的消费速度进行动态调整:消费端二对应的消息分区的剩余可消费量为最小可消费量的2倍,因此,将消费端二的消费速度调整为参考消费速度的两倍,即200(条/秒);消费端三对应的消息分区的剩余可消费量为最小可消费量的8倍,因此,将消费端三的消费速度调整为参考消费速度的八倍,即800(条/秒)。
示例二:
假设共有三个消息分区以及三个消费端,消费端一对应的消息分区一的剩余可消费量为1000(条),消费端二对应的消息分区二的剩余可消费量为200(条),消费端三对应的消息分区三的剩余可消费量为300(条),并且,三个消费端的当前消费速度均为100(条/秒)。
相应地,各个消费端对应的消息分区的剩余可消费量中的最小值为200,即:最小可消费量为200。另外,由于最小可消费量对应的消费端为消费端二,其消费速度为100(条/秒),因此,参考消费速度为100(条/秒),在根据最小可消费量(200)调整参考消费速度(100)时,由于最小可消费量大于1秒内按照参考消费速度的消费量,因此,将参考消费速度增大为200(条/秒),以使参考消费速度与最小可消费量相匹配,从而使消费速度与剩余可消费量尽可能地匹配。
然后,进一步根据其他消费端对应的消息分区的剩余可消费量与最小可消费量之间的比例关系以及调整后的参考消费速度,对其他消费端的消费速度进行动态调整:消费端一对应的消息分区的剩余可消费量为最小可消费量的5倍,因此,将消费端一的消费速度调整为参考消费速度的五倍,即1000(条/秒);消费端三对应的消息分区的剩余可消费量为最小可消费量的1.5倍,因此,将消费端三的消费速度调整为参考消费速度的1.5倍,即300(条/秒)。
另外,在上述两个示例中,以各个消费端的初始消费速度均等为例进行说明,本领域技术人员能够理解的是,在其他示例中,各个消费端的初始消费速度也可以不同。而且,在上述示例中,直接根据其他消费端的剩余可消费量与最小可消费量之间的比值调整其他消费端的消费速度,实际上,为了进一步优化消费效率,还可以预先设置更加细化的调整规则,从而根据调整规则实现更加灵活地速度调整。例如,可以预先将其他消费端的剩余可消费量与最小可消费量之间的比值划分为多个比值区间,分别为每个比值区间设定对应的速度调整倍率,从而根据相应区间的速度调整倍率进行调整。具体地,可以预先将其他消费端的剩余可消费量与最小可消费量之间的比值划分为三个比值区间:当其他消费端的剩余可消费量与最小可消费量之间的比值为2-3倍时,属于第一比值区间,其对应的速度调整倍率为1.5倍,即:当某一消费端的剩余可消费量与最小可消费量之间的比值为2-3倍时,将该消费端的消费速度调整为参考消费速度的1.5倍;当其他消费端的剩余可消费量与最小可消费量之间的比值为4-9倍时,属于第二比值区间,其对应的速度调整倍率为2.5倍,即:当某一消费端的剩余可消费量与最小可消费量之间的比值为4-9倍时,将该消费端的消费速度调整为参考消费速度的2.5倍;当其他消费端的剩余可消费量与最小可消费量之间的比值为10倍以上时,属于第三比值区间,其对应的速度调整倍率为5倍,即:当某一消费端的剩余可消费量与最小可消费量之间的比值为10倍以上时,将该消费端的消费速度调整为参考消费速度的5倍。具体的比值区间范围及相应的速度调整倍率可由本领域技术人员灵活设置,本发明对此不做限定。
另外,在根据最小可消费量调整参考消费速度时,需将最小可消费量与预设时间段内按照参考消费速度的消费量进行比较,在上述的各个示例中,比较时所选取的预设时间段均为1秒,在其他的示例中,该预设时间段也可以根据各个消息分区的消息写入速度、近期消费速度、剩余可消费量等多种因素进行设置并调整,例如,还可以调整为1分钟或3秒等,只要能够确保在未来的一小段时间内不会出现消费失败现象即可。而且,该预设时间段的长短还可以结合步骤S220及其后续步骤的执行周期进行确定,例如,当步骤S220及其后续步骤每隔预设时间间隔执行一次时,预设时间间隔越长,预设时间段设置得也越长;预设时间间隔越短,预设时间段设置得也越短,从而使预设时间段的设置结果能够更好地适配上述各个步骤的执行周期。
而且,为了防止因消息读取失败而出现错误数据,在本实施例中,每当消费端从对应的消息分区中读取一条数据后,进一步判断该条数据是否读取成功,若判断结果为是,则根据该条数据的偏移地址确定对应的消息分区的当前消费偏移;若判断结果为否,则向消费端发送读取失败提示信息,以供该消费端重新读取该条数据。通过逐条判断的方式,一方面能够确保消息读取过程中的正确性,另一方面还能确保每次获取到的当前消费偏移的正确性,从而为后续各个步骤的准确执行提供了可靠保障。
而且,上述步骤S240和步骤S250还可以通过其他的各种替代方式实现,只要能够实现根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度的目的即可。例如,也可以分别获取各个消费端对应的消息分区的剩余可消费量以及各个消费端的当前消费速度,进而比较每个消费端对应的消息分区的剩余可消费量与该消费端的当前消费速度,根据比较结果调整该消费端的消费速度,例如,当某消费端对应的消息分区的剩余可消费量小于该消费端的当前消费速度时,则减小该消费端的当前消费速度;当某消费端对应的消息分区的剩余可消费量大于该消费端的当前消费速度时,则增大该消费端的当前消费速度。
上述实施例中的消息队列可以采用分布式消息队列实现,从而更好地支持各类并行业务。另外,本领域技术人员还可以对上述实施例进行各种改动和变形。例如,可以将上述实施例中的各个步骤拆分成更多的步骤,或合并为更少的步骤,还可以调整各个步骤之间的执行顺序,甚至可以删减部分步骤或新增一些步骤,总之,本发明对具体的实现细节不做限定。
综上所述,在本发明实施例提供的消息队列的消费方法中,首先分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;然后根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;最后根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度,并进一步根据其他消费端对应的消息分区的剩余可消费量与最小可消费量之间的比例关系以及调整后的参考消费速度,对其他消费端的消费速度进行动态调整。因此,通过本实施例提供的消息队列的消费方法,能够根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度,从而既避免了因剩余可消费量不足而导致的消费失败现象,又防止了因消费速度过慢而导致的消息积压现象,为消费端的消费过程提供了可靠保障,进而为整个数据处理系统的正常运行提供了有利支持。
实施例三
图3示出了本发明实施例三提供的一种消息队列的消费装置的结构示意图。如图3所示,该装置包括:获取模块31、确定模块32以及第一调整模块33。
获取模块31适于分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。
其中,获取模块31可以根据消息队列中的各个消息分区的数量设定消费端的数量,在一种设定方式中,消费端的数量等于消息队列中的各个消息分区的数量,此时,消费端与消息分区为一一对应的关系,相应地,一个消费端固定负责消费对应的一个消息分区中的消息,该种方式能够最大程度地避免多个消费端之间相互干扰、以及消费混乱的情况发生。在另一种设定方式中,消费端的数量大于消息队列中的各个消息分区的数量,此时,消费端与消息分区为多对一的关系,该种方式能够通过多个消费端同时读取一个消息分区中的消息,从而有效提升了消息读取过程的可靠性。在其他的设定方式中,消费端的数量小于消息队列中的各个消息分区的数量,此时,消费端与消息分区可以为一对多的关系,该种方式能够通过一个消费端读取多个消息分区中的消息,能够在消息分区数量较多时有效防止因消费端数量过多而带来的系统开销增大的问题。总之,本领域技术人员可以根据消息分区的数量、系统开销以及具体应用场景灵活地为各个消息分区分配消费端,本发明对具体的分配方式不做限定。
具体地,在各个消费端进行消费的过程中,获取模块31定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移,其中,当前消费偏移反映了该消费端当前已消费数据的偏移信息,最大有效偏移反映了该消费端对应的消息分区中的可消费数据的最大偏移信息。例如,假设一个消息分区中目前已写入了1000条消息,这1000条消息均处于可读取的有效状态,则该消息分区的最大有效偏移为1000;假设负责消费该消息分区的消费端目前已读取至第50条消息,则该消费端对应的消息分区的当前消费偏移为50。
确定模块32适于根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量。
具体地,各个消费端对应的消息分区的剩余可消费量可以通过确定模块32根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。例如,以上例为例,当消息分区的最大有效偏移为1000,消费端对应的消息分区的当前消费偏移为50时,该消费端对应的消息分区的剩余可消费量为950。
第一调整模块33适于根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
具体地,第一调整模块33的动态调整方式可由本领域技术人员灵活设定,本发明对具体的调整方式不做限定。在一种实现方式中,可以判断各个消费端的当前消费速度与其对应的消息分区的剩余可消费量是否匹配,若判断结果为否,则通过第一调整模块33调整该消费端的当前消费速度,使之与其对应的消息分区的剩余可消费量匹配。例如,若某一消费端的剩余可消费量小于预设时间段内按照该消费端的当前消费速度的消费量时,将该消费端的当前消费速度减小为与该消费端的剩余可消费量相匹配的数值;和/或,若某一消费端的剩余可消费量大于预设时间段内按照该消费端的当前消费速度的消费量时,将该消费端的当前消费速度增大为与该消费端的剩余可消费量相匹配的数值。
另外,确定模块进一步适于:每当消费端从对应的消息分区中读取一条数据后,判断该条数据是否读取成功,若判断结果为是,则根据该条数据的偏移地址确定对应的消息分区的当前消费偏移;若判断结果为否,则向消费端发送读取失败提示信息,以供所述消费端重新读取该条数据。
由此可见,在本发明实施例提供的消息队列的消费装置中,首先通过获取模块31分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;然后通过确定模块32根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;最后通过第一调整模块33根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。因此,本发明中的各个消费端的消费速度可以根据当前剩余可消费量进行动态调整,从而有效避免了消费失败的现象,提高了消息处理的正确性,为整个数据处理系统的正常运行提供了有利保障。
实施例四
图4示出了本发明实施例四提供的一种消息队列的消费装置的结构示意图。如图4所示,该装置包括:获取模块41、确定模块42、第一调整模块43以及第二调整模块44。
获取模块41适于分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。
具体地,获取模块41在分别为消息队列中的各个消息分区分配对应的消费端进行消费时,获取模块41可以根据消息队列中的各个消息分区的数量设定消费端的数量,在一种设定方式中,消费端的数量等于消息队列中的各个消息分区的数量,此时,消费端与消息分区为一一对应的关系,相应地,一个消费端固定负责消费对应的一个消息分区中的消息,该种方式能够最大程度地避免多个消费端之间相互干扰、以及消费混乱的情况发生。在另一种设定方式中,消费端的数量大于消息队列中的各个消息分区的数量,此时,消费端与消息分区为多对一的关系,该种方式能够通过多个消费端同时读取一个消息分区中的消息,从而有效提升了消息读取过程的可靠性。在其他的设定方式中,消费端的数量小于消息队列中的各个消息分区的数量,此时,消费端与消息分区可以为一对多的关系,该种方式能够通过一个消费端读取多个消息分区中的消息,能够在消息分区数量较多时有效防止因消费端数量过多而带来的系统开销增大的问题。总之,本领域技术人员可以根据消息分区的数量、系统开销以及具体应用场景灵活地为各个消息分区分配消费端,本发明对具体的分配方式不做限定。在分别为消息队列中的各个消息分区分配对应的消费端进行消费之后,获取模块41在定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。其中,当前消费偏移反映了相应的消费端当前已消费数据的偏移信息,因此,当前消费偏移与具体的消费端密切相关,每个消费端所对应的当前消费偏移可能不同。其中,最大有效偏移反映了消费端对应的消息分区中的可消费数据的最大偏移信息,因此,最大有效偏移与具体的消费端无关,即:当两个消费端同时负责消费一个消息分区中的消息数据时,即使两个消费端的消费进度不同,但同一时间内每个消费端所对应的消息分区的最大有效偏移必然相同。例如,假设一个消息分区中目前已写入了1000条消息,这1000条消息均处于可读取的有效状态,则该消息分区的最大有效偏移为1000;假设负责消费该消息分区的消费端一目前已读取至第50条消息,则该消费端一对应的消息分区的当前消费偏移为50;假设负责消费该消息分区的消费端二目前已读取至第150条消息,则该消费端二对应的消息分区的当前消费偏移为150。
确定模块42适于根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量。
具体地,各个消费端对应的消息分区的剩余可消费量可以通过确定模块42根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。例如,以上例为例,当消息分区的最大有效偏移为1000,消费端对应的消息分区的当前消费偏移为50时,该消费端对应的消息分区的剩余可消费量为950。由此可见,剩余可消费量实际上反映了一个消息分区中剩余可消费的消息数量,一个消息分区的剩余可消费量越大,说明该消息分区中可供消费的消息数量越多;一个消息分区的剩余可消费量越小,说明该消息分区中可供消费的消息数量越少。
第一调整模块43适于根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
具体地,第一调整模块43可以根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定上述各个消费端对应的消息分区的剩余可消费量。例如,以上例为例,当消息分区的最大有效偏移为1000,消费端对应的消息分区的当前消费偏移为50时,该消费端对应的消息分区的剩余可消费量为950。由此可见,剩余可消费量实际上反映了一个消息分区中剩余可消费的消息数量,一个消息分区的剩余可消费量越大,说明该消息分区中可供消费的消息数量越多;一个消息分区的剩余可消费量越小,说明该消息分区中可供消费的消息数量越少。
第一调整模块43在动态调整各个消费端的消费速度时,首先,确定剩余可消费量最小的消费端,将剩余可消费量最小的消费端的当前消费速度确定为参考消费速度,然后,根据该消费端的实际剩余可消费量调整该消费端的消费速度。具体地,在根据最小可消费量调整参考消费速度时,当最小可消费量小于预设时间段内按照参考消费速度的消费量时,将参考消费速度减小为与最小可消费量相匹配的数值;和/或,当最小可消费量大于预设时间段内按照参考消费速度的消费量时,将参考消费速度增大为与最小可消费量相匹配的数值。
第二调整模块44适于根据其他消费端对应的消息分区的剩余可消费量与最小可消费量之间的比例关系以及调整后的参考消费速度,对其他消费端的消费速度进行动态调整。
具体地,第二调整模块44在于对除剩余可消费量最小的消费端之外的其他消费端的消费速度进行调整,以使各个消费端的消费速度尽可能与其剩余可消费量相匹配。
上述装置中的各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
由此可见,在本发明提供的消息队列的消费装置中,首先通过获取模块41分别为消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;然后通过确定模块42根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;最后通过第一调整模块43根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度,并进一步通过第二调整模块44根据其他消费端对应的消息分区的剩余可消费量与最小可消费量之间的比例关系以及调整后的参考消费速度,对其他消费端的消费速度进行动态调整。因此,通过本实施例提供的消息队列的消费装置,能够根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度,从而既避免了因剩余可消费量不足而导致的消费失败现象,又防止了因消费速度过慢而导致的消息积压现象,为消费端的消费过程提供了可靠保障,进而为整个数据处理系统的正常运行提供了有利支持。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的消息队列的消费装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:A1、一种消息队列的消费方法,包括:
分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;
根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;
根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
A2、根据A1所述的方法,其中,各个消费端对应的消息分区的剩余可消费量根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。
A3、根据A1或A2所述的方法,其中,所述根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度的步骤具体包括:
将各个消费端对应的消息分区的剩余可消费量中的最小值确定为最小可消费量;
将所述最小可消费量对应的消费端的消费速度确定为参考消费速度;
根据所述最小可消费量调整所述参考消费速度。
A4、根据A3所述的方法,其中,所述根据所述最小可消费量调整所述参考消费速度的步骤具体包括:
当所述最小可消费量小于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度减小为与所述最小可消费量相匹配的数值;和/或,
当所述最小可消费量大于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度增大为与所述最小可消费量相匹配的数值。
A5、根据A4所述的方法,其中,所述方法进一步包括:
根据其他消费端对应的消息分区的剩余可消费量与所述最小可消费量之间的比例关系以及调整后的所述参考消费速度,对其他消费端的消费速度进行动态调整。
A6、根据A1-A5任一所述的方法,其中,所述定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移的步骤具体包括:
每当消费端读取一条数据后获取该消费端对应的消息分区的当前消费偏移以及最大有效偏移;和/或,
每隔预设时间间隔获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。
A7、根据A1-A6任一所述的方法,其中,每当消费端从对应的消息分区中读取一条数据后,判断该条数据是否读取成功,若判断结果为是,则根据该条数据的偏移地址确定对应的消息分区的当前消费偏移;若判断结果为否,则向消费端发送读取失败提示信息,以供所述消费端重新读取该条数据。
A8、根据A1-A7任一所述的方法,其中,所述消息队列为分布式消息队列。
本发明还公开了:B9、一种消息队列的消费装置,包括:
获取模块,适于分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;
确定模块,适于根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;
第一调整模块,适于根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
B10、根据B9所述的装置,其中,所述确定模块具体用于:根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定各个消费端对应的消息分区的剩余可消费量。
B11、根据B9或B10所述的装置,其中,所述第一调整模块具体用于:
将各个消费端对应的消息分区的剩余可消费量中的最小值确定为最小可消;将所述最小可消费量对应的消费端的消费速度确定为参考消费速度;根据所述最小可消费量调整所述参考消费速度。
B12、根据B11所述的装置,其中,所述第一调整模块进一步用于:
当所述最小可消费量小于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度减小为与所述最小可消费量相匹配的数值;和/或,
当所述最小可消费量大于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度增大为与所述最小可消费量相匹配的数值。
B13、根据B12所述的装置,其中,所述装置进一步包括:
第二调整模块,适于根据其他消费端对应的消息分区的剩余可消费量与所述最小可消费量之间的比例关系以及调整后的所述参考消费速度,对其他消费端的消费速度进行动态调整。
B14、根据B9-B13任一所述的装置,其中,所述获取模块具体用于:
每当消费端读取一条数据后获取该消费端对应的消息分区的当前消费偏移以及最大有效偏移;和/或,
每隔预设时间间隔获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。
B15、根据B9-B14任一所述的装置,其中,所述确定模块进一步适于:每当消费端从对应的消息分区中读取一条数据后,判断该条数据是否读取成功,若判断结果为是,则根据该条数据的偏移地址确定对应的消息分区的当前消费偏移;若判断结果为否,则向消费端发送读取失败提示信息,以供所述消费端重新读取该条数据。
B16、根据B9-B15任一所述的装置,其中,所述消息队列为分布式消息队列。
Claims (10)
1.一种消息队列的消费方法,包括:
分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;
根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;
根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
2.根据权利要求1所述的方法,其中,各个消费端对应的消息分区的剩余可消费量根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定。
3.根据权利要求1或2所述的方法,其中,所述根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度的步骤具体包括:
将各个消费端对应的消息分区的剩余可消费量中的最小值确定为最小可消费量;
将所述最小可消费量对应的消费端的消费速度确定为参考消费速度;
根据所述最小可消费量调整所述参考消费速度。
4.根据权利要求3所述的方法,其中,所述根据所述最小可消费量调整所述参考消费速度的步骤具体包括:
当所述最小可消费量小于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度减小为与所述最小可消费量相匹配的数值;和/或,
当所述最小可消费量大于预设时间段内按照所述参考消费速度的消费量时,将所述参考消费速度增大为与所述最小可消费量相匹配的数值。
5.根据权利要求4所述的方法,其中,所述方法进一步包括:
根据其他消费端对应的消息分区的剩余可消费量与所述最小可消费量之间的比例关系以及调整后的所述参考消费速度,对其他消费端的消费速度进行动态调整。
6.根据权利要求1-5任一所述的方法,其中,所述定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移的步骤具体包括:
每当消费端读取一条数据后获取该消费端对应的消息分区的当前消费偏移以及最大有效偏移;和/或,
每隔预设时间间隔获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移。
7.根据权利要求1-6任一所述的方法,其中,每当消费端从对应的消息分区中读取一条数据后,判断该条数据是否读取成功,若判断结果为是,则根据该条数据的偏移地址确定对应的消息分区的当前消费偏移;若判断结果为否,则向消费端发送读取失败提示信息,以供所述消费端重新读取该条数据。
8.根据权利要求1-7任一所述的方法,其中,所述消息队列为分布式消息队列。
9.一种消息队列的消费装置,包括:
获取模块,适于分别为所述消息队列中的各个消息分区分配对应的消费端进行消费,定期获取各个消费端对应的消息分区的当前消费偏移以及最大有效偏移;
确定模块,适于根据各个消费端对应的消息分区的当前消费偏移以及最大有效偏移确定各个消费端对应的消息分区的剩余可消费量;
第一调整模块,适于根据各个消费端对应的消息分区的剩余可消费量,动态调整各个消费端的消费速度。
10.根据权利要求9所述的装置,其中,所述确定模块具体用于:根据各个消费端对应的消息分区的最大有效偏移与当前消费偏移之间的差值确定各个消费端对应的消息分区的剩余可消费量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611178259.0A CN106598760B (zh) | 2016-12-19 | 2016-12-19 | 消息队列的消费方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611178259.0A CN106598760B (zh) | 2016-12-19 | 2016-12-19 | 消息队列的消费方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106598760A true CN106598760A (zh) | 2017-04-26 |
CN106598760B CN106598760B (zh) | 2020-07-10 |
Family
ID=58599403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611178259.0A Expired - Fee Related CN106598760B (zh) | 2016-12-19 | 2016-12-19 | 消息队列的消费方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106598760B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107197017A (zh) * | 2017-05-23 | 2017-09-22 | 努比亚技术有限公司 | 一种基于消费队列的消费方法、终端及计算机可读存储介质 |
CN108021358A (zh) * | 2017-12-15 | 2018-05-11 | 无线生活(杭州)信息科技有限公司 | 一种数据处理方法及装置 |
CN109190025A (zh) * | 2018-08-21 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 信息监控方法、装置、系统和计算机可读存储介质 |
CN109697187A (zh) * | 2017-10-24 | 2019-04-30 | 阿里巴巴集团控股有限公司 | 基于顺序消息的扩、缩容方法和装置以及电子设备 |
CN109739659A (zh) * | 2018-12-13 | 2019-05-10 | 上海恺英网络科技有限公司 | 一种分布式消息队列的消息消费的方法和系统 |
CN110309230A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 基于区块链的区块生成方法、装置、设备及存储介质 |
CN110971430A (zh) * | 2018-09-29 | 2020-04-07 | 北京国双科技有限公司 | 自动化扩容缩容的控制方法、装置、存储介质及处理器 |
CN112019689A (zh) * | 2019-05-29 | 2020-12-01 | 北京奇虎科技有限公司 | 来电秀业务处理系统及方法 |
CN112463416A (zh) * | 2020-12-17 | 2021-03-09 | 中国农业银行股份有限公司 | 消息队列中数据处理的方法、装置、设备及存储介质 |
CN113127221A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种限制消息消费速率的方法、装置、设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150200887A1 (en) * | 2014-01-14 | 2015-07-16 | International Business Machines Corporation | Message switch file sharing |
CN104935622A (zh) * | 2014-03-21 | 2015-09-23 | 阿里巴巴集团控股有限公司 | 一种用于消息分配、消费的方法及装置,用于消息处理的系统 |
CN105468784A (zh) * | 2015-12-24 | 2016-04-06 | 北京京东尚科信息技术有限公司 | 处理高并发流量的方法及其装置 |
CN105912412A (zh) * | 2016-03-31 | 2016-08-31 | 北京奇虎科技有限公司 | 消息分发方法、装置及系统 |
CN105930203A (zh) * | 2015-12-29 | 2016-09-07 | 中国银联股份有限公司 | 一种控制消息分发的方法及装置 |
-
2016
- 2016-12-19 CN CN201611178259.0A patent/CN106598760B/zh not_active Expired - Fee Related
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20150200887A1 (en) * | 2014-01-14 | 2015-07-16 | International Business Machines Corporation | Message switch file sharing |
CN104935622A (zh) * | 2014-03-21 | 2015-09-23 | 阿里巴巴集团控股有限公司 | 一种用于消息分配、消费的方法及装置,用于消息处理的系统 |
CN105468784A (zh) * | 2015-12-24 | 2016-04-06 | 北京京东尚科信息技术有限公司 | 处理高并发流量的方法及其装置 |
CN105930203A (zh) * | 2015-12-29 | 2016-09-07 | 中国银联股份有限公司 | 一种控制消息分发的方法及装置 |
CN105912412A (zh) * | 2016-03-31 | 2016-08-31 | 北京奇虎科技有限公司 | 消息分发方法、装置及系统 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107197017A (zh) * | 2017-05-23 | 2017-09-22 | 努比亚技术有限公司 | 一种基于消费队列的消费方法、终端及计算机可读存储介质 |
CN109697187A (zh) * | 2017-10-24 | 2019-04-30 | 阿里巴巴集团控股有限公司 | 基于顺序消息的扩、缩容方法和装置以及电子设备 |
CN109697187B (zh) * | 2017-10-24 | 2022-10-21 | 阿里巴巴集团控股有限公司 | 基于顺序消息的扩、缩容方法和装置以及电子设备 |
CN108021358A (zh) * | 2017-12-15 | 2018-05-11 | 无线生活(杭州)信息科技有限公司 | 一种数据处理方法及装置 |
CN109190025A (zh) * | 2018-08-21 | 2019-01-11 | 北京京东尚科信息技术有限公司 | 信息监控方法、装置、系统和计算机可读存储介质 |
CN110971430A (zh) * | 2018-09-29 | 2020-04-07 | 北京国双科技有限公司 | 自动化扩容缩容的控制方法、装置、存储介质及处理器 |
CN109739659A (zh) * | 2018-12-13 | 2019-05-10 | 上海恺英网络科技有限公司 | 一种分布式消息队列的消息消费的方法和系统 |
CN110309230A (zh) * | 2019-05-22 | 2019-10-08 | 深圳壹账通智能科技有限公司 | 基于区块链的区块生成方法、装置、设备及存储介质 |
CN112019689A (zh) * | 2019-05-29 | 2020-12-01 | 北京奇虎科技有限公司 | 来电秀业务处理系统及方法 |
CN113127221A (zh) * | 2019-12-31 | 2021-07-16 | 奇安信科技集团股份有限公司 | 一种限制消息消费速率的方法、装置、设备及存储介质 |
CN112463416A (zh) * | 2020-12-17 | 2021-03-09 | 中国农业银行股份有限公司 | 消息队列中数据处理的方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106598760B (zh) | 2020-07-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106598760A (zh) | 消息队列的消费方法及装置 | |
CN107872528B (zh) | 消息推送方法及装置 | |
US9495206B2 (en) | Scheduling and execution of tasks based on resource availability | |
CN108829469A (zh) | 一种应用程序页面展示方法及装置 | |
CN105183585B (zh) | 一种数据备份方法及装置 | |
CN104199790A (zh) | 数据处理方法及装置 | |
CN104700022A (zh) | 一种动态验证码生成方法及装置 | |
CN110609735B (zh) | 任务管理方法、设备和计算机程序产品 | |
CN111064776B (zh) | 区块链中区块的生成方法、记账节点及存储介质 | |
CN110297810B (zh) | 一种流数据处理方法、装置及电子设备 | |
US8589942B2 (en) | Non-real time thread scheduling | |
CN109800074A (zh) | 任务数据并发执行方法、装置以及电子设备 | |
EP2829988A1 (en) | Storage apparatus, and system and method for executing access operations | |
US20160275006A1 (en) | Evaluating and presenting software testing project status indicators | |
CN105511959A (zh) | 虚拟资源分配方法和装置 | |
CN105677470B (zh) | 虚拟机任务调度方法、虚拟机系统 | |
CN109861791A (zh) | 一种周期型数据报文传输方法、系统、装置和存储介质 | |
CN112765087A (zh) | 用于在多个处理器之间使通信同步的系统和方法 | |
EP3306462B1 (en) | Display device, and display signal input system and display signal input method thereof | |
CN106681837A (zh) | 基于数据表的数据淘汰方法及装置 | |
CN111161064A (zh) | 一种区块链交易记录的处理方法及装置 | |
CN102388359A (zh) | 信号保序方法和装置 | |
CN105912412A (zh) | 消息分发方法、装置及系统 | |
CN107193650A (zh) | 一种在分布式集群中调度显卡资源的方法和装置 | |
CN106776552A (zh) | 文件识别方法、装置、服务器和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20200710 |