CN117493048B - 消息动态处理方法、装置、设备和介质 - Google Patents
消息动态处理方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN117493048B CN117493048B CN202311844653.3A CN202311844653A CN117493048B CN 117493048 B CN117493048 B CN 117493048B CN 202311844653 A CN202311844653 A CN 202311844653A CN 117493048 B CN117493048 B CN 117493048B
- Authority
- CN
- China
- Prior art keywords
- message
- processing
- level
- current
- result
- 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.)
- Active
Links
- 238000003672 processing method Methods 0.000 title abstract description 21
- 238000012545 processing Methods 0.000 claims abstract description 313
- 238000000034 method Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 13
- 238000009825 accumulation Methods 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 5
- 238000002955 isolation Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction 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/547—Messaging middleware
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了消息动态处理方法,方法包括:获取消息,并通过消息计数器对消息进行计算,得到当前消息量;基于当前消息量和分级策略对消息进行分级,得到消息分级结果,并将消息分级结果存储至预设的缓存区域;基于消息处理策略和消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送到目标处理级别对应的处理队列中;目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。本发明通过对消息的分级处理和队列的动态配置,使得不同业务场景下的消息量能自适应的选取最佳的消息处理策略,从而达到解决消息堆积的问题,提高消息处理效率。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及消息动态处理方法、装置、设备和介质。
背景技术
消息中间件是中大型互联网分布式系统中用于处理异步事件的重要支撑工具。在一些营销类及个推类等消息量巨大的saas系统中,为了应对高峰时期的大流量,消息中间件会使用分拆队列来扩容提升机器的并发处理能力,以避免大量的延迟。
然而,现在如今,随着电商产业的快速发展,线上商家越来越多,不仅数据消费体量大小不一,且不同时间段、不同业务场景下的消费数据量也会有很大的不同。因此,如果还是将所有的消息量都聚合到拆分队列里进行统一拆分,那么就会因为消息堆积而互相影响。例如:某一业务场景下出现的巨量消息堆积,则会导致一些日常业务消息的严重延迟。因此,简单的共享拆分队列无法保证不同商家、不同阶段的消费需求。
因而,针对现有的消息配置技术中存在的消息堆积问题,尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种消息动态处理方法、装置、设备和介质,旨在解决现有的消息配置技术中存在的消息堆积问题。
第一方面,本发明实施例提供了一种消息动态处理方法,所述方法包括:
获取消息,并通过消息计数器对所述消息进行计算,得到当前消息量;
基于所述当前消息量和分级策略对所述消息进行分级,得到消息分级结果,并将所述消息分级结果存储至预设的缓存区域;
基于消息处理策略和所述消息分级结果,在多个处理级别中获取与所述消息分级结果对应的目标处理级别,并将所述消息发送到所述目标处理级别对应的处理队列中;
所述目标处理级别对应的处理队列对所述消息进行消息处理得到对应的消息处理结果。
第二方面,本发明实施例提供了一种消息动态处理装置,所述装置包括:
获取模块,用于获取消息,并通过消息计数器对所述消息进行计算,得到当前消息量;
分级模块,用于基于所述当前消息量和分级策略对所述消息进行分级,得到消息分级结果,并将所述消息分级结果存储至预设的缓存区域;
消息处理模块,用于基于消息处理策略和所述消息分级结果,在多个处理级别中获取与所述消息分级结果对应的目标处理级别,并将所述消息发送到所述目标处理级别对应的处理队列中,
所述目标处理级别对应的处理队列对所述消息进行消息处理得到对应的消息处理结果。
第三方面,本发明实施例又提供了一种计算机设备,其包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述第一方面所述的方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其中所述计算机可读存储介质存储有计算机程序,所述计算机程序当被处理器执行时使所述处理器执行上述第一方面所述的方法。
本发明实施例提供了一种消息动态处理方法及装置。获取消息,并通过消息计数器对消息进行计算,得到当前消息量;基于当前消息量和分级策略对消息进行分级,得到消息分级结果,并将消息分级结果存储至预设的缓存区域;基于消息处理策略和消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送到目标处理级别对应的处理队列中;目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。
上述方法中,为了实现不同业务场景下消息的隔离处理,本发明通过对消息的分级处理和队列的动态配置,使得不同业务场景下的消息量能自适应的选取最佳的消息处理策略,从而达到解决消息堆积的问题,提高消息处理效率。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的消息动态处理方法的流程示意图;
图2为本发明实施例提供的消息动态处理方法的子流程示意图;
图3为本发明实施例提供的消息动态处理方法的另一子流程示意图;
图4为本发明实施例提供的消息动态处理方法的又一子流程示意图;
图5为本发明实施例提供的消息动态处理装置的示意性框图;
图6为本发明实施例提供的计算机设备的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和 “包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本发明说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本发明。如在本发明说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本发明说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
本发明实施例提供了一种消息动态处理方法,图1为本发明实施例提供的消息动态处理方法的流程示意图,如图1所示,该方法包括步骤S110~S140。
S110、获取消息,并通过消息计数器对消息进行计算,得到当前消息量。
本实施例中,获取不同业务场景发送的消息数据,并通过消息计数器,例如,redis,对当前店铺当前场景下的消息数据进行计数,得到当前消息量。
S120、基于当前消息量和分级策略对消息进行分级,得到消息分级结果,并将消息分级结果存储至预设的缓存区域。
在一实施例中,步骤S120包括子步骤S121-S124,图2为本发明实施例提供的消息动态处理方法的子流程示意图,如图2所示。
S121、获取当前消息量。
S122、根据当前消息量判断消息的级别,若当前消息量的数值大小小于第一级别的最大限制处理容量,则判定当前消息属于第一级别,并以第一级别作为消息分级结果。例如,设定第一级别的最大限制处理容量为20000。
S123、若当前消息量的数值大小大于或等于第一级别的最大限制处理容量,且小于第二级别的最大限制处理容量,则判定当前消息属于第二级别,并以第二级别作为消息分级结果。例如,设定第二级别的最大限制处理容量为100000。
S124、若当前消息量的数值大小大于等于第二级别的最大限制处理容量,则判定当前消息属于第三级别,并以第三级别作为消息分级结果。
需要说明的是,本实施例中根据实际情况对消息级别只做了三级划分,但是在其他情况下也可以在第三级别后进一步划分多个级别,在此不做具体限定。
本实施例中通过设定各个级别的最大限制处理容量可以保证第一级别的消息不会进入第二级别的队列,第二级别的消息不会进入第三级别队列中,从而起到了资源隔离的作用。各个级别的最小限制处理容量可以保证低级别的消息量达到高一级的最小限制处理容量时,能直接越级进入高一级的队列中,从而对消息进行动态分配。
S130、基于消息处理策略和消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送到目标处理级别对应的处理队列中。
本实施例中,基于消息处理策略和步骤S120中得到的消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送目标处理级别对应的处理队列中。
在一实施例中,若当前属于消息高峰并发阶段,那么高峰场景的业务消息量会突然暴增,其消息量的数值大小很可能一开始就会超过第二级别的最大限制处理容量,而一些日常的业务消息量还是处于第一级别的处理容量中。因此,为了不让阶段性的巨量消息影响日常业务消息处理,步骤S130包括子步骤S131、S132和S133,图3为本发明实施例提供的消息动态处理方法的另一子流程示意图,如图3所示。
S131、获取当前系统时间,当该当前系统时间的消息量单位时间增长率大于预设增长率阈值时,判定当前处于消息高峰期。需要说明的是,假设当前系统时间T1的消息量为a,与当前系统时间间隔预设时间区间的时间点T2的消息量为b,基于当前系统时间T1的消息量,以及与当前系统时间间隔预设时间区间的时间点T2的消息量,这两者的差值进行计算,得到当前系统时间的消息量单位时间增长率k,即k=(a-b)/(T1-T2)。若k值大于预设增长率阈值时,判定当前处于消息高峰期。
S132、获取当前缓存区域中的消息分级结果;
S133、当消息分级结果为第一级别或第二级别时,将消息发送到第一级别对应的处理队列或第二级别对应的处理队列中。
S134、当消息分级结果为第三级别时,将消息发送到第三级别对应的处理队列中。
在一实施例中,若当前场景属于消息量平缓阶段,那么不会出现突然暴增的消息量,即其消息量的数值大小一开始就不会超过第一级别的最大限制处理容量,因此,对于后续溢出的消息量,步骤S130还包括子步骤S1301、S1302、S1303和S1304,图4为本发明实施例提供的消息动态处理方法的又一子流程示意图,如图4所示。
S1301、获取当前系统时间,当当前系统时间的消息量单位时间增长率小于或等于预设增长率阈值时,判定当前处于消息非高峰期。需要说明的是,假设当前系统时间T1的消息量为a,与当前系统时间间隔预设时间区间的时间点T2的消息量为b,基于当前系统时间T1的消息量,以及与当前系统时间间隔预设时间区间的时间点T2的消息量,这两者的差值进行计算,得到当前系统时间的消息量单位时间增长率k,即k=(a-b)/(T1-T2)。若k值小于或等于预设增长率阈值时,判定当前处于消息非高峰期,即消息平缓期。
S1302、获取当前缓存区域中的消息分级结果;
S1303、当消息分级结果为第一级别时,将消息发送到第一级别对应的处理队列中。
S1304、当消息分级结果为第二级别时,先将消息发送到第一级别对应的处理队列中,再将超出第一级别最大限制处理容量的消息发送到第二级别对应的处理队列中。
S1305、当消息分级结果为第三级别时,先按级别顺序将消息发送到第一级别和第二级别对应的处理队列中,再将超出第二级别最大限制处理容量的消息发送到第三级别的处理队列中。
S140、目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。
本实施例中,通过上述步骤确定消息应该发送的目标处理级别后,目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。
优选的,当目标处理级别为第一级别或第二级别时,基于共享策略对第一级别对应的处理队列或第二级别对应的处理队列中的消息进行处理,得到对应的消息处理结果;当目标处理级别为第三级别时,基于独占策略对第三级别对应的处理队列中的消息进行处理,得到对应的消息处理结果。
具体的,基于共享策略对第一级别对应的处理队列或第二级别对应的处理队列中的消息进行处理包括:获取当前级别中的消息量;当消息量大于当前级别对应的处理队列的队列最大限制处理容量时,在当前级别中新增队列数量,并将超过队列最大限制处理容量的消息转移到新增队列中,直至新增的队列能容纳当前所有消息量;通过轮询算法对所有处理队列中的消息进行轮询处理。从而使得消息量不大的业务场景下的消息共享处理,达到节约资源的目的。
基于独占策略对第三级别对应的处理队列中的消息进行处理包括:获取第三级别中的消息量;当消息量大于第三级别对应的处理队列的队列最大限制处理容量时,在第三级别中新增队列数量,并将超过队列最大限制处理容量的消息转移到新增队列中,直至新增的队列能容纳当前所有消息量;通过排它锁对处理队列中的消息进行独占处理。从而使得消息量巨大的业务场景下的消息进行独占处理,避免消息堆积,提高消息处理效率。
需要说明的是,处理消息的过程中,队列计数器会实时记录下当前剩余队列数,通过当前剩余队列数向终端反馈已处理的队列数量和待处理的队列数量。
在一实施例中,在目标处理级别对应的处理队列对消息进行消息处理,得到对应的消息处理结果之后,还会通过消息计数器对处理队列中的消息进行动态计算,得到处理队列中的剩余消息量,以实时获取处理队列中当前剩余的消息量,从而向终端反馈队列中消息处理情况。
在本发明实施例所提供的消息动态处理方法中,获取消息,并通过消息计数器对消息进行计算,得到当前消息量;基于当前消息量和分级策略对消息进行分级,得到消息分级结果,并将消息分级结果存储至预设的缓存区域;基于消息处理策略和消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送到目标处理级别对应的处理队列中;目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。上述方法中,为了实现不同业务场景下消息的隔离处理,本发明通过对消息的分级处理和队列的动态配置,使得不同业务场景下的消息量能自适应的选取最佳的消息处理策略,从而达到解决消息堆积的问题,提高消息处理效率。
本发明实施例还提供一种消息动态处理装置,图5为本发明实施例提供的消息动态处理装置的示意性框图,如图5所示,该装置包括获取模块510、分级模块520和消息处理模块530。
获取模块510,用于获取消息,并通过消息计数器对消息进行计算,得到当前消息量。
本实施例中,获取不同业务场景发送的消息数据,并通过消息计数器,例如,redis,对当前店铺当前场景下的消息数据进行计数,得到当前消息量。
分级模块520,用于基于当前消息量和分级策略对消息进行分级,得到消息分级结果,并将消息分级结果存储至预设的缓存区域。
在一实施例中,分级模块520用于如下。
获取当前消息量。
根据当前消息量判断消息的级别,若当前消息量的数值大小小于第一级别的最大限制处理容量,则判定当前消息属于第一级别,并以第一级别作为消息分级结果。例如,设定第一级别的最大限制处理容量为20000。
若当前消息量的数值大小大于或等于第一级别的最大限制处理容量,且小于第二级别的最大限制处理容量,则判定当前消息属于第二级别,并以第二级别作为消息分级结果。例如,设定第二级别的最大限制处理容量为100000。
若当前消息量的数值大小大于等于第二级别的最大限制处理容量,则判定当前消息属于第三级别,并以第三级别作为消息分级结果。
需要说明的是,本实施例中根据实际情况对消息级别只做了三级划分,但是在其他情况下也可以在第三级别后进一步划分多个级别,在此不做具体限定。
本实施例中通过设定各个级别的最大限制处理容量可以保证第一级别的消息不会进入第二级别的队列,第二级别的消息不会进入第三级别队列中,从而起到了资源隔离的作用。各个级别的最小限制处理容量可以保证低级别的消息量达到高一级的最小限制处理容量时,能直接越级进入高一级的队列中,从而对消息进行动态分配。
消息处理模块530,用于基于消息处理策略和消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送到目标处理级别对应的处理队列中,目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。
本实施例中,基于消息处理策略和分级模块520中得到的消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送目标处理级别对应的处理队列中。
在一实施例中,若当前属于消息高峰并发阶段,那么高峰场景的业务消息量会突然暴增,其消息量的数值大小很可能一开始就会超过第二级别的最大限制处理容量,而一些日常的业务消息量还是处于第一级别的处理容量中。因此,为了不让阶段性的巨量消息影响日常业务消息处理,消息处理模块530用于如下。
获取当前系统时间,当该当前系统时间的消息量单位时间增长率大于预设增长率阈值时,判定当前处于消息高峰期。需要说明的是,假设当前系统时间T1的消息量为a,与当前系统时间间隔预设时间区间的时间点T2的消息量为b,基于当前系统时间T1的消息量,以及与当前系统时间间隔预设时间区间的时间点T2的消息量,这两者的差值进行计算,得到当前系统时间的消息量单位时间增长率k,即k=(a-b)/(T1-T2)。若k值大于预设增长率阈值时,判定当前处于消息高峰期。
获取当前缓存区域中的消息分级结果;
当消息分级结果为第一级别或第二级别时,将消息发送到第一级别对应的处理队列或第二级别对应的处理队列中。
当消息分级结果为第三级别时,将消息发送到第三级别对应的处理队列中。
在一实施例中,若当前场景属于消息量平缓阶段,那么不会出现突然暴增的消息量,即其消息量的数值大小一开始就不会超过第一级别的最大限制处理容量,因此,对于后续溢出的消息量,消息处理模块530还用于如下。
获取当前系统时间,当当前系统时间的消息量单位时间增长率小于或等于预设增长率阈值时,判定当前处于消息非高峰期。需要说明的是,假设当前系统时间T1的消息量为a,与当前系统时间间隔预设时间区间的时间点T2的消息量为b,基于当前系统时间T1的消息量,以及与当前系统时间间隔预设时间区间的时间点T2的消息量,这两者的差值进行计算,得到当前系统时间的消息量单位时间增长率k,即k=(a-b)/(T1-T2)。若k值小于或等于预设增长率阈值时,判定当前处于消息非高峰期,即消息平缓期。
获取当前缓存区域中的消息分级结果;
当消息分级结果为第一级别时,将消息发送到第一级别对应的处理队列中。
当消息分级结果为第二级别时,先将消息发送到第一级别对应的处理队列中,再将超出第一级别最大限制处理容量的消息发送到第二级别对应的处理队列中。
当消息分级结果为第三级别时,先按级别顺序将消息发送到第一级别和第二级别对应的处理队列中,再将超出第二级别最大限制处理容量的消息发送到第三级别的处理队列中。
通过上述步骤确定消息应该发送的目标处理级别后,目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。
优选的,当目标处理级别为第一级别或第二级别时,基于共享策略对第一级别对应的处理队列或第二级别对应的处理队列中的消息进行处理,得到对应的消息处理结果;当目标处理级别为第三级别时,基于独占策略对第三级别对应的处理队列中的消息进行处理,得到对应的消息处理结果。
具体的,基于共享策略对第一级别对应的处理队列或第二级别对应的处理队列中的消息进行处理包括:获取当前级别中的消息量;当消息量大于当前级别对应的处理队列的队列最大限制处理容量时,在当前级别中新增队列数量,并将超过队列最大限制处理容量的消息转移到新增队列中,直至新增的队列能容纳当前所有消息量;通过轮询算法对所有处理队列中的消息进行轮询处理。从而使得消息量不大的业务场景下的消息共享处理,达到节约资源的目的。
基于独占策略对第三级别对应的处理队列中的消息进行处理包括:获取第三级别中的消息量;当消息量大于第三级别对应的处理队列的队列最大限制处理容量时,在第三级别中新增队列数量,并将超过队列最大限制处理容量的消息转移到新增队列中,直至新增的队列能容纳当前所有消息量;通过排它锁对处理队列中的消息进行独占处理。从而使得消息量巨大的业务场景下的消息进行独占处理,避免消息堆积,提高消息处理效率。
需要说明的是,处理消息的过程中,队列计数器会实时记录下当前剩余队列数,通过当前剩余队列数向终端反馈已处理的队列数量和待处理的队列数量。
在一实施例中,在目标处理级别对应的处理队列对消息进行消息处理,得到对应的消息处理结果之后,还会通过消息计数器对处理队列中的消息进行动态计算,得到处理队列中的剩余消息量,以实时获取处理队列中当前剩余的消息量,从而向终端反馈队列中消息处理情况。
在本发明实施例所提供的消息动态处理装置应用于上述消息动态处理方法中,获取消息,并通过消息计数器对消息进行计算,得到当前消息量;基于当前消息量和分级策略对消息进行分级,得到消息分级结果,并将消息分级结果存储至预设的缓存区域;基于消息处理策略和消息分级结果,在多个处理级别中获取与消息分级结果对应的目标处理级别,并将消息发送到目标处理级别对应的处理队列中;目标处理级别对应的处理队列对消息进行消息处理得到对应的消息处理结果。上述方法中,为了实现不同业务场景下消息的隔离处理,本发明通过对消息的分级处理和队列的动态配置,使得不同业务场景下的消息量能自适应的选取最佳的消息处理策略,从而达到解决消息堆积的问题,提高消息处理效率。
上述消息动态处理方法可以实现为计算机程序的形式,该计算机程序可以在如图6所示的计算机设备上运行。
请参阅图6,图6是本发明实施例提供的计算机设备的示意性框图。该计算机设备可以是用于执行消息动态处理方法。
参阅图6,该计算机设备500包括通过系统总线501连接的处理器502、存储器和网络接口505,其中,存储器可以包括存储介质503和内存储器504。
该存储介质503可存储操作系统5031和计算机程序5032。该计算机程序5032被执行时,可使得处理器502执行消息动态处理方法,其中,存储介质503可以为易失性的存储介质或非易失性的存储介质。
该处理器502用于提供计算和控制能力,支撑整个计算机设备500的运行。
该内存储器504为存储介质503中的计算机程序5032的运行提供环境,该计算机程序5032被处理器502执行时,可使得处理器502执行消息动态处理方法。
该网络接口505用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图6中示出的结构,仅仅是与本发明方案相关的部分结构的框图,并不构成对本发明方案所应用于其上的计算机设备500的限定,具体的计算机设备500可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器502用于运行存储在存储器中的计算机程序5032,以实现上述的消息动态处理方法中对应的功能。
本领域技术人员可以理解,图6中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图6所示实施例一致,在此不再赘述。
应当理解,在本发明实施例中,处理器502可以是中央处理单元 (CentralProcessing Unit,CPU),该处理器502还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路 (Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列 (Field-Programmable Gate Array,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本发明的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为易失性或非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现上述的消息动态处理方法中所包含的步骤。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台计算机设备 ( 可以是个人计算机,服务器,或者网络设备等 ) 执行本发明各个实施例所述方法的全部或部分步骤。而前述的计算机可读存储介质包括:U 盘、移动硬盘、只读存储器 (ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (8)
1.一种消息动态处理方法,其特征在于,所述方法包括:
获取消息,并通过消息计数器对所述消息进行计算,得到当前消息量;
基于所述当前消息量和分级策略对所述消息进行分级,得到消息分级结果,具体的,根据所述当前消息量判断所述消息的级别,若所述当前消息量的数值大小小于第一级别的最大限制处理容量,则判定所述消息属于第一级别,并以所述第一级别作为所述消息分级结果;若所述当前消息量的数值大小大于或等于第一级别的最大限制处理容量,且小于第二级别的最大限制处理容量,则判定所述消息属于第二级别,并以所述第二级别作为所述消息分级结果;若所述当前消息量的数值大小大于或等于第二级别的最大限制处理容量,则判定所述消息属于第三级别,并以所述第三级别作为所述消息分级结果;并将所述消息分级结果存储至预设的缓存区域;
基于消息处理策略和所述消息分级结果,在多个处理级别中获取与所述消息分级结果对应的目标处理级别,并将所述消息发送到所述目标处理级别对应的处理队列中;
所述目标处理级别对应的处理队列对所述消息进行消息处理得到对应的消息处理结果,具体的,当所述目标处理级别为第一级别或第二级别时,基于共享策略对所述第一级别对应的处理队列或所述第二级别对应的处理队列中的消息进行处理,得到对应的消息处理结果;当所述目标处理级别为第三级别时,基于独占策略对所述第三级别对应的处理队列中的消息进行处理,得到对应的消息处理结果。
2.根据权利要求1所述的方法,其特征在于,所述基于消息处理策略和所述消息分级结果,在多个处理级别中获取与所述消息分级结果对应的目标处理级别,并将所述消息发送到所述目标处理级别对应的处理队列中,包括:
获取当前系统时间,当所述当前系统时间的消息量单位时间增长率大于预设增长率阈值时,判定当前处于消息高峰期;
获取当前缓存区域中的消息分级结果;
当所述消息分级结果为第一级别或第二级别时,将所述消息发送到所述第一级别对应的处理队列或所述第二级别对应的处理队列中;
当所述消息分级结果为第三级别时,将所述消息发送到所述第三级别对应的处理队列中。
3.根据权利要求1所述的方法,其特征在于,所述基于消息处理策略和所述消息分级结果,在多个处理级别中获取与所述消息分级结果对应的目标处理级别,并将所述消息发送到所述目标处理级别对应的处理队列中,还包括:
获取当前系统时间,当所述当前系统时间的消息量单位时间增长率小于或等于预设增长率阈值时,判定当前处于消息非高峰期;
获取当前缓存区域中的消息分级结果;
当所述消息分级结果为第一级别时,将所述消息发送到所述第一级别对应的处理队列中;
当所述消息分级结果为第二级别时,先将所述消息发送到所述第一级别对应的处理队列中,再将超出第一级别最大限制处理容量的消息发送到所述第二级别对应的处理队列中;
当所述消息分级结果为第三级别时,先按级别顺序将所述消息发送到所述第一级别和所述第二级别对应的处理队列中,再将超出第二级别最大限制处理容量的消息发送到所述第三级别的处理队列中。
4.根据权利要求1所述的方法,其特征在于,所述基于共享策略对所述第一级别或所述第二级别对应的处理队列中的消息进行处理,包括:
获取当前级别中的消息量;
当所述消息量大于所述当前级别对应的处理队列的队列最大限制处理容量时,在所述当前级别中新增队列数量,并将超过队列最大限制处理容量的消息转移到新增队列中,直至新增的队列能容纳当前所有消息量;
通过轮询算法对所述处理队列中的消息进行轮询处理。
5.根据权利要求1所述的方法,其特征在于,所述基于独占策略对所述第三级别对应的处理队列中的消息进行处理,包括:
获取所述第三级别中的消息量;
当所述消息量大于所述第三级别对应的处理队列的队列最大限制处理容量时,在所述第三级别中新增队列数量,并将超过队列最大限制处理容量的消息转移到新增队列中,直至新增的队列能容纳当前所有消息量;
通过排它锁对所述处理队列中的消息进行独占处理。
6.一种消息动态处理装置,其特征在于,所述装置包括:
获取模块,用于获取消息,并通过消息计数器对所述消息进行计算,得到当前消息量;
分级模块,用于基于所述当前消息量和分级策略对所述消息进行分级,得到消息分级结果,具体的,根据所述当前消息量判断所述消息的级别,若所述当前消息量的数值大小小于第一级别的最大限制处理容量,则判定所述消息属于第一级别,并以所述第一级别作为所述消息分级结果;若所述当前消息量的数值大小大于或等于第一级别的最大限制处理容量,且小于第二级别的最大限制处理容量,则判定所述消息属于第二级别,并以所述第二级别作为所述消息分级结果;若所述当前消息量的数值大小大于或等于第二级别的最大限制处理容量,则判定所述消息属于第三级别,并以所述第三级别作为所述消息分级结果;并将所述消息分级结果存储至预设的缓存区域;
消息处理模块,用于基于消息处理策略和所述消息分级结果,在多个处理级别中获取与所述消息分级结果对应的目标处理级别,并将所述消息发送到所述目标处理级别对应的处理队列中,
所述目标处理级别对应的处理队列对所述消息进行消息处理得到对应的消息处理结果,具体的,当所述目标处理级别为第一级别或第二级别时,基于共享策略对所述第一级别对应的处理队列或所述第二级别对应的处理队列中的消息进行处理,得到对应的消息处理结果;当所述目标处理级别为第三级别时,基于独占策略对所述第三级别对应的处理队列中的消息进行处理,得到对应的消息处理结果。
7.一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至5中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时实现如权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311844653.3A CN117493048B (zh) | 2023-12-29 | 2023-12-29 | 消息动态处理方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311844653.3A CN117493048B (zh) | 2023-12-29 | 2023-12-29 | 消息动态处理方法、装置、设备和介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117493048A CN117493048A (zh) | 2024-02-02 |
CN117493048B true CN117493048B (zh) | 2024-04-02 |
Family
ID=89685300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311844653.3A Active CN117493048B (zh) | 2023-12-29 | 2023-12-29 | 消息动态处理方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117493048B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148504A (zh) * | 2020-09-15 | 2020-12-29 | 海尔优家智能科技(北京)有限公司 | 目标消息的处理方法及装置、存储介质及电子装置 |
CN116151929A (zh) * | 2023-03-17 | 2023-05-23 | 深圳市企企通科技有限公司 | 基于消息队列的订单协同处理方法、装置、设备及介质 |
CN116361031A (zh) * | 2023-03-31 | 2023-06-30 | 北京天兵科技有限公司 | 消息的传输方法、系统、装置、处理器以及电子设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10341463B2 (en) * | 2017-05-03 | 2019-07-02 | International Business Machines Corporation | System and method for message queue configuration in a network |
-
2023
- 2023-12-29 CN CN202311844653.3A patent/CN117493048B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112148504A (zh) * | 2020-09-15 | 2020-12-29 | 海尔优家智能科技(北京)有限公司 | 目标消息的处理方法及装置、存储介质及电子装置 |
CN116151929A (zh) * | 2023-03-17 | 2023-05-23 | 深圳市企企通科技有限公司 | 基于消息队列的订单协同处理方法、装置、设备及介质 |
CN116361031A (zh) * | 2023-03-31 | 2023-06-30 | 北京天兵科技有限公司 | 消息的传输方法、系统、装置、处理器以及电子设备 |
Non-Patent Citations (2)
Title |
---|
Lightweight methods to estimate influenza rates and alcohol sales volume from Twitter messages;Culotta, A;《LANGUAGE RESOURCES AND EVALUATION》;20130330;全文 * |
基于灰色预测模型的优先级队列缓存管理策略;唐定勇;林正红;江虹;;计算机工程;20150515(05);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN117493048A (zh) | 2024-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109194584B (zh) | 一种流量监控方法、装置、计算机设备及存储介质 | |
CN111522636B (zh) | 应用容器的调整方法、调整系统、计算机可读介质及终端设备 | |
CN108449410B (zh) | 一种云平台中消息管理方法、系统及相关装置 | |
US20120016994A1 (en) | Distributed system | |
CN109617829B (zh) | 一种业务请求数据的处理方法、装置及系统 | |
CN111245732B (zh) | 一种流量控制方法、装置及设备 | |
CN111641563B (zh) | 基于分布式场景的流量自适应方法与系统 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN112783807B (zh) | 一种模型计算方法及系统 | |
CN116233928A (zh) | 基于通感算一体化的卸载决策与资源分配方法 | |
CN115334082A (zh) | 负载均衡方法、装置、计算机设备、存储介质和产品 | |
CN105450784B (zh) | 向mq中的消息分配消费节点的装置及方法 | |
CN117493048B (zh) | 消息动态处理方法、装置、设备和介质 | |
CN111400241B (zh) | 数据重构方法和装置 | |
CN116382892B (zh) | 一种基于多云融合以及云服务的负载均衡方法及装置 | |
CN116248699B (zh) | 多副本场景下的数据读取方法、装置、设备及存储介质 | |
CN116055401A (zh) | 一种消息处理方法、装置、设备及存储介质 | |
CN115499513A (zh) | 数据请求的处理方法、装置、计算机设备和存储介质 | |
CN114675973A (zh) | 资源管理方法、设备、存储介质及程序产品 | |
CN113805802A (zh) | 访问限流的方法、服务器及存储介质 | |
CN114448987B (zh) | 基于云服务的负荷分散管理方法、装置、设备及介质 | |
CN112866128A (zh) | 分布式网络的限速方法、装置及电子设备 | |
CN108153685A (zh) | 一种处理请求的方法、装置及设备、可读介质 | |
CN110166429B (zh) | 数据包处理方法、装置、计算机可读存储介质及服务器 | |
WO2024125201A1 (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 |