CN114138506A - 消息队列调度方法及其装置、设备、介质、产品 - Google Patents
消息队列调度方法及其装置、设备、介质、产品 Download PDFInfo
- Publication number
- CN114138506A CN114138506A CN202111315765.0A CN202111315765A CN114138506A CN 114138506 A CN114138506 A CN 114138506A CN 202111315765 A CN202111315765 A CN 202111315765A CN 114138506 A CN114138506 A CN 114138506A
- Authority
- CN
- China
- Prior art keywords
- message
- message queue
- queue
- retry
- original
- 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 64
- 238000012544 monitoring process Methods 0.000 claims abstract description 33
- 238000004590 computer program Methods 0.000 claims description 20
- 230000008569 process Effects 0.000 claims description 17
- 238000012545 processing Methods 0.000 abstract description 14
- 238000012546 transfer Methods 0.000 description 12
- 230000006854 communication Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 238000011144 upstream manufacturing Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000013024 troubleshooting Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 238000004132 cross linking Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Images
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
- 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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开一种消息队列调度方法及其装置、设备、介质、产品,所述方法包括:根据消息系统配置信息创建相应的原始消息队列,使其用于流通生产者所添加的消息体;依次控制所述原始消息队列操作其中的消息体的出列,使出列的消息体被预注解订阅的消费者线程消费;监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费;监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费。本申请按梯度对无响应的消息体先后进行重试和停止处理,既避免消息体可能导致原始消息队列阻塞,又能实现对无响应消息的有序调度。
Description
技术领域
本申请涉及消息队列调度技术,尤其涉及一种消息队列调度方法及其相应的装置、计算机设备、计算机可读存储介质,以及计算机程序产品。
背景技术
服务集群内或服务集群之间,服务器到服务器之间的消息传递依赖于消息系统的支持,消息的生产者与消费者之间需要实现绑定,以便消费者可以订阅生产者的消息体。生产者的消息体通过消息系统为其提供的消息队列按序出列提供给相应的消费者相应的线程消费。在消息系统中,可能同时存在多个分别服务于不同消费者的消息队列,各个消息队列均可独立按需配置,相互之间并行不悖。
在一个消息队列内部,因各种原因所致,有时候会出现消息体无法有效出列的情况,这种情况下,如果不及时为之调度,将导致消息队列阻塞,从而影响其他消息体的正常消费,甚至导致相关上下游服务的崩溃。
现有技术中,实现消息队列防阻塞的方案多种多样,各有千秋,但所采用的手段略显粗暴,通常是直接将相关超时存续的消息体清除出消息队列中,不能兼容各种可能的容灾情况,因此,往往美中不足。
对于服务于海量的在线服务的消息系统而言,由于其需要服务于多个在线服务,因而一个强健的消息队列调度方案尤为重要,以便使每个在线服务均可高度信赖于该消息系统而工作,相应的需求应用场景中,可以是诸如电商平台系统之类的需要确保即时响应能力的服务系统,此类服务系统对消息系统的稳健性的依赖尤为严肃,有鉴于此,本申请人做出相应的探索。
发明内容
本申请的首要目的在于解决上述问题至少之一而提供一种消息队列调度方法及其相应的装置、计算机设备、计算机可读存储介质、计算机程序产品。
为满足本申请的各个目的,本申请采用如下技术方案:
适应本申请的目的之一而提供的一种消息队列调度方法,包括如下步骤:
根据消息系统配置信息创建相应的原始消息队列,使其用于流通生产者所添加的消息体;
依次控制所述原始消息队列操作其中的消息体的出列,使出列的消息体被预注解订阅的消费者线程消费;
监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费;
监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费。
扩展的实施例中,依次控制所述原始消息队列操作其中的消息体的出列的步骤之前,包括:
获取注解文件,根据预定的注解标记识别消费者与生产者的对应关系;
确定所述生产者相对应的原始消息队列;
将所述消费者添加为所述生产者相对应的原始消息队列的消费者。
深化的实施例中,监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费,包括如下步骤:
计算每个消息体处于其所在的原始消息队列中的存续时长,比较该存续时长是否超过预设阈值;
当所述存续时长超过预设阈值时,将相应的消息体转移至重试消息队列进行重试消费。
深化的实施例中,监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费,包括如下步骤:
计算每个消息体处于其所在的重试消息队列中的存续时长,比较该存续时长是否超过预设阈值;
当所述存续时长超过预设阈值时,在预设次数范围内将相应的消息体再次置于重试消息队列中排队以待消费;
监听同一消息体在重试消息队列中的重试次数,当该重试次数达到所述预设次数时,将相应的消息体转移至死信消息队列。
扩展的实施例中,依次控制所述原始消息队列操作其中的消息体的出列的步骤之后,包括如下步骤:
计算所述原始消息队列对应的下游服务的消息体消费速度以及该原始消息队列的消息体入列速度,判断两者的大小;
当后者大于前者超过预设阈值时,启用异步消息队列用于分流后续消息体。
扩展的实施例中,监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列的步骤之后,包括如下步骤:
获取所述死信消息队列中的消费线程的特征信息;
构造包含所述特征信息的告警信息;
将所述告警信息发送给预定的接口。
适应本申请的目的之一而提供的一种消息队列调度装置,包括:队列配置模块、原始出列模块、原始监听模块以及重试监听模块,其中,所述队列配置模块,用于根据消息系统配置信息创建相应的原始消息队列,使其用于流通生产者所添加的消息体;所述原始出列模块,用于依次控制所述原始消息队列操作其中的消息体的出列,使出列的消息体被预注解订阅的消费者线程消费;所述原始监听模块,用于监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费;所述重试监听模块,用于监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费。
扩展的实施例中,本申请的消息队列调度装置,还包括:注解获取模块,用于获取注解文件,根据预定的注解标记识别消费者与生产者的对应关系;注解解析模块,用于确定所述生产者相对应的原始消息队列;关系绑定模块,用于将所述消费者添加为所述生产者相对应的原始消息队列的消费者。
深化的实施例中,所述原始监听模块,包括:第一时长子模块,用于计算每个消息体处于其所在的原始消息队列中的存续时长,比较该存续时长是否超过预设阈值;重试转移子模块,用于当所述存续时长超过预设阈值时,将相应的消息体转移至重试消息队列进行重试消费。
深化的实施例中,所述重试监听模块,包括:第二时长子模块,用于计算每个消息体处于其所在的重试消息队列中的存续时长,比较该存续时长是否超过预设阈值;有限重试子模块,用于当所述存续时长超过预设阈值时,在预设次数范围内将相应的消息体再次置于重试消息队列中排队以待消费;死信转移子模块,用于监听同一消息体在重试消息队列中的重试次数,当该重试次数达到所述预设次数时,将相应的消息体转移至死信消息队列。
扩展的实施例中,本申请的消息队列调度装置,还包括:计算判断模块,用于计算所述原始消息队列对应的下游服务的消息体消费速度以及该原始消息队列的消息体入列速度,判断两者的大小;异步启动模块,用于当后者大于前者超过预设阈值时,启用异步消息队列用于分流后续消息体。
扩展的实施例中,本申请的消息队列调度装置,还包括:特征获取模块,用于获取所述死信消息队列中的消费线程的特征信息;告警构造模块,用于构造包含所述特征信息的告警信息;告警发送模块,用于将所述告警信息发送给预定的接口。
适应本申请的目的之一而提供的一种计算机设备,包括中央处理器和存储器,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行本申请所述的消息队列调度方法的步骤。
适应本申请的另一目的而提供的一种计算机可读存储介质,其以计算机可读指令的形式存储有依据所述的消息队列调度方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行该方法所包括的步骤。
适应本申请的另一目的而提供的一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本申请任意一种实施例中所述方法的步骤。
相对于现有技术,本申请的优势如下:
本申请提供通过消息系统配置信息配置生产者相应的原始消息队列的服务,然后针对原始消息队列中的消息体的存续时长进行监听,当发现存续时长超时的消息体时,将其转移至重试消息队列中进行一次或多次重试消费,继续监听重试消息队列中的消息体是否被正常消费,只有当消息体经预定次数的多次重试消费仍未能成功时,才将相应的消息体转移到死信消息队列中停止对其消费处理,据此,本申请实现按梯度调度有问题的消息体,原始消息队列的故障消息体可以被转移到重试消息队列中进行集中重试,避免故障消息体阻塞原始消息队列,确保原始消息队列的消息体的正常流通,同时,由于重试消息队列中允许多次重试,也延长了消息体等待被消费的时长,具有容灾能力,从而确保个别意外导致的暂时停滞事件可以被兼容,而不影响部分消息体从重试消息队列中流出,从而使原始消息队列的生产者和消费者相对应的在线服务能够更强健地运行。
附图说明
本申请上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为本申请的消息队列调度方法的典型实施例的流程示意图;
图2为本申请实施例中通过注解文件实现消费者与原始消息队列绑定的过程的流程示意图;
图3为本申请实施例中监听原始消息队列中的消息体是否超时并进行相应的调度的过程的流程示意图;
图4为本申请实施例中监听重试消息队列中的消息体是否重试消费超过预设次数并进行相应的调度的过程的流程示意图;
图5为本申请实施例中根据原始消息队列的负载情况启用异步消息队列的过程的流程示意图;
图6为本申请实施例中处理死信消息队列中的死亡消息体的过程的流程示意图;
图7为本申请的消息队列调度装置的原理框图;
图8为本申请所采用的一种计算机设备的结构示意图。
具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本申请的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“客户端”、“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,进行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其他诸如个人计算机、平板电脑之类的通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其他通信设备;PCS(PersonalCommunications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global PositioningSystem,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其他设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其他设备。这里所使用的“客户端”、“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其他位置运行。这里所使用的“客户端”、“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
本申请所称的“服务器”、“客户端”、“服务节点”等名称所指向的硬件,本质上是具备个人计算机等效能力的电子设备,为具有中央处理器(包括运算器和控制器)、存储器、输入设备以及输出设备等冯诺依曼原理所揭示的必要构件的硬件装置,计算机程序存储于其存储器中,中央处理器将存储在外存中的程序调入内存中运行,执行程序中的指令,与输入输出设备交互,借此完成特定的功能。
需要指出的是,本申请所称的“服务器”这一概念,同理也可扩展到适用于服务器机群的情况。依据本领域技术人员所理解的网络部署原理,所述各服务器应是逻辑上的划分,在物理空间上,这些服务器既可以是互相独立但可通过接口调用的,也可以是集成到一台物理计算机或一套计算机机群的。本领域技术人员应当理解这一变通,而不应以此约束本申请的网络部署方式的实施方式。
本申请的一个或数个技术特征,除非明文指定,既可部署于服务器实施而由客户端远程调用获取服务器提供的在线服务接口来实施访问,也可直接部署并运行于客户端来实施访问。
本申请中所引用或可能引用到的神经网络模型,除非明文指定,既可部署于远程服务器且在客户端实施远程调用,也可部署于设备能力胜任的客户端直接调用,某些实施例中,当其运行于客户端时,其相应的智能可通过迁移学习来获得,以便降低对客户端硬件运行资源的要求,避免过度占用客户端硬件运行资源。
本申请所涉及的各种数据,除非明文指定,既可远程存储于服务器,也可存储于本地终端设备,只要其适于被本申请的技术方案所调用即可。
本领域技术人员对此应当知晓:本申请的各种方法,虽然基于相同的概念而进行描述而使其彼此间呈现共通性,但是,除非特别说明,否则这些方法都是可以独立执行的。同理,对于本申请所揭示的各个实施例而言,均基于同一发明构思而提出,因此,对于相同表述的概念,以及尽管概念表述不同但仅是为了方便而适当变换的概念,应被等同理解。
本申请即将揭示的各个实施例,除非明文指出彼此之间的相互排斥关系,否则,各个实施例所涉的相关技术特征可以交叉结合而灵活构造出新的实施例,只要这种结合不背离本申请的创造精神且可满足现有技术中的需求或解决现有技术中的某方面的不足即可。对此变通,本领域技术人员应当知晓。
本申请的一种消息队列调度方法,可被编程为计算机程序产品,部署于服务集群中运行而实现,以便藉此通过访问该计算机程序产品运行后开放的接口,通过图形用户界面与该计算机程序产品进行人机交互而执行该方法。
请参阅图1,本申请的消息队列调度方法在其典型实施例中,包括如下步骤:
步骤S2100、根据消息系统配置信息创建相应的原始消息队列,使其用于流通生产者所添加的消息体:
本申请的技术方案可以实现并部署于消息系统中,或者关联多个消息系统而并发服务于所有消息系统。所述的消息系统用于为各个生产者提供创建和维护相应的原始消息队列的服务,利用该原始消息队列接收其相应的生产者的消息体,并利用所述的原始消息队列为预订阅相应的生产者的消费者提供消息消费服务,所述的消息体按照原始消息队列的队列访问逻辑在原始消息队列中流通,使其在队尾入列,在队头出列。对此,本领域技术人员可以灵活实现。
当需要配置一个消息系统时,可以向实现本申请技术方案的进程提交相应的消息系统配置信息,所述消息系统配置信息可以包含生产者的注册信息、对消息体出列过程的控制参数等,所述注册信息可以分空间、分租户划分,具体可由本领域技术人员根据具体消息系统的规范按需设置。
实现本申请的技术方案的进程获取所述的消息系统配置信息之后,根据所述配置信息内部的具体信息,与相应的消息系统通信,根据配置信息配置关联于该消息系统的原始消息队列,使该原始消息队列服务于配置信息中指定的生产者。
一个实施例中,所述的配置信息中,可以包含原始消息队列的消费者的注解信息,根据所述注解信息,可以获得相应的多个消费者,故此,便可将各个消费者与注册为所述原始消息队列的生产者相对应的消费者,后续由原始消息队列出列的消息体便可被这些消费者的相应的消费者线程所消费。可以理解,所述生产者相对于消息系统而言,是指上游服务,而所述消费者则指下游服务,上游服务通过原始消息队列将消息体传递给下游服务,从而实现两者之间基于消息体的数据通信。
另一实施例中,所述消费者可以另外配置,后续将进行详细揭示,此处暂且按下不表。
步骤S2200、依次控制所述原始消息队列操作其中的消息体的出列,使出列的消息体被预注解订阅的消费者线程消费:
配置好所述的原始消息队列之后,原始消息队列被投入开始工作,由此便可服务于相应的生产者和消费者,供生产者添加消息体,然后控制消息体流通至相应的消费者线程中进行消费。
在原始消息队列投入工作的过程中,各个消息体可以被实现为按照一定的业务逻辑与其他消息体进行协调工作,例如,每个消息体均可计算自身在原始消息队列中的存续时长,或者计算下游服务的消费速度与上游服务的消费速度等,以便为原始消息队列的调度提供相关数据。同理,本申请中,消息体所实现的上述逻辑,也适于运行于其他类型的消息队列,包括本申请的重试消息队列、死信消息队列以及其他实施例中的异步消息队列等。
原始消息队列根据其固有的队列逻辑操作其内的消息体的出列,主要是按照各个消息体进入原始消息队列的顺序来执行的,体现为先进先出原则,但是对于诸如消息体因阻塞或者因其他引用数据无法消费的情况,则允许将相应的消息体调度至本申请的其他类型的消息队列中。
从原始消息队列出列的消息体,被传递至预注解的消费者相应的消费者线程中进行消费,从而完成生产者与消费者基于消息体的数据通信过程。
步骤S2300、监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费:
为了处理原始消息队列中的异常情况,可以通过配置一个监听器对所述原始消息队列内的消息体的存续时长进行监听。如前所述,一个实施例中,消息体在原始消息队列的存续时长可由其自身计算,而其他实施例中也可由原始消息队列自身的所述监听器计算,最终均可获得相应的存续时长。
获得所述的存续时长后,便可判断该存续时长是否超过预设阈值,此处具体是适应该原始消息队列而统一设置的一个时间阈值,当消息体超过该预设阈值仍未出列消费的,如果仍然占用原始消息队列,容易引起队列阻塞,因此,便将其视为故障消息体转移至重试消息队列中,按照重试消息队列的业务逻辑进行排队,等待被消费。
所述的重试消息队列,不同于本申请的原始消息队列及异步消息队列,是一个专用于处理未能按时从原始消息队列出列的消息体的队列。该重试消息队列主要用于对相应的原始消息队列中的故障消息体进行重试消费。变通的实施例中,该重试消息队列可以扩展为用于接收不同生产者的原始消息队列内的故障的同类消息体,将所有同类的故障消息体置于该重试消息队列中尝试流通,将能够顺利流出的故障消息体传递给相应的消费者线程进行消费,从而使该故障消息体最终触及下游服务。
当一个故障消息体从其原始消息队列中被调度至所述的重试消息队列时,便按照该重试消息队列的队列逻辑进行排队,所述队列逻辑一般也按先进先出原则实现,当然,本领域技术人员也可根据实际需要做适当变通,例如,本申请中为其赋予故障消息体多次重试机制以及将其多次重试失败的故障消息体视为死亡消息进行处理的机制。
步骤S2400、监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费:
为了实现重试消息队列中关于故障消息体的调度,同理,可以通过配置一个监听器对所述重试消息队列内的消息体的存续时长进行监听。如前所述,一个实施例中,消息体在的存续时长可由其自身计算,而其他实施例中也可由所述监听器计算,最终均可获得相应的存续时长。一个变通的实施例中,为原始消息队列配置的监听器与为重试消息队列配置的监听器可以实现为同一监听器,以便节省部分系统开销。
所述的重试消息队列,允许其中的故障消息体进行预设次数的多次重试,每次重试时,可将消息体当次的存续时长清零,将消息体重新置于重试消息队列中排队。所述监听器能够实时获取重试消息队列中的消息体的存续时长,从而可以根据该存续时长判断重试消息队列中相应的故障消息体在是次重试中是否超时。判断一次重试是否超时时,同理可根据预设阈值来判断。为重试消息队列设置的这一预设阈值,可以与为原始消息队列设置的预设阈值相同,但本实施例中,采取低于后者的数值,以免重试消息队列的其他消息体等候过长时间。
对于一个故障消息体,根据每一次重试消费计算的存续时长是否超过相应的预设阈值,便可确定是次重试消费是否失败,当消费失败时,便可将该故障消息体的存续时长置零值,然后将该消息体调度至重试消息队列的队尾中重新排队,以进行新一次的重试消费。
所述监听器同时还负责监听每一消息体被重试消费的总次数,并且也设置了一个预设次数用于判断消息体是否可视为死亡消息体,当一个故障消息体经所述预设次数的多次重试仍未能从重试消息队列中出列消费时,即可将其视为死亡消息体,从而便将其调度转移至本申请所预设的死信消息队列中,后续可通过死信消息队列来出列各个死亡消息体。
所述的死信消息队列同理可依照先进先出原则实现,其不同于其他消息队列之处在于,其队尾的消息体来源于所述重试消息队列,而其队头出列的消息体则不再被传递给预注解的任意下游服务的消费者线程,而是由为其专设的告警消费线程处理,以便对其进行集中的统计分析。
被转移至死信消息队列的消息体不再需要对接消费者线程,因此构造死亡消息体,据此,可以通过所述的告警消费线程对死信消息队列中的死亡消息体进行统一业务逻辑的处理。
通过本典型实施例及其变通实施例,可以看出,本申请提供通过消息系统配置信息配置生产者相应的原始消息队列的服务,然后针对原始消息队列中的消息体的存续时长进行监听,当发现存续时长超时的消息体时,将其转移至重试消息队列中进行一次或多次重试消费,继续监听重试消息队列中的消息体是否被正常消费,只有当消息体经预定次数的多次重试消费仍未能成功时,才将相应的消息体转移到死信消息队列中停止对其消费处理,据此,本申请实现按梯度调度有问题的消息体,原始消息队列的故障消息体可以被转移到重试消息队列中进行集中重试,避免故障消息体阻塞原始消息队列,确保原始消息队列的消息体的正常流通,同时,由于重试消息队列中允许多次重试,也延长了消息体等待被消费的时长,具有容灾能力,从而确保个别意外导致的暂时停滞事件可以被兼容,而不影响部分消息体从重试消息队列中流出,从而使原始消息队列的生产者和消费者相对应的在线服务能够更强健地运行。
请参阅图2,扩展的实施例中,所述步骤S2100、依次控制所述原始消息队列操作其中的消息体的出列的步骤之前,包括:
步骤S1100、获取注解文件,根据预定的注解标记识别消费者与生产者的对应关系:
本实施例中,允许通过注解文件实现对消费者与生产者的绑定,以便消费者相对应的消费者线程可从生产者的原始消息队列中获取相应的消息体进行消费。
所述的注解文件,可以采用多种与实现了本申请技术方案的进程兼容的语言进行编制,当其被该进程接收后,便进行解析,通过其中预定的注解标记识别出消费者和生产者的对应关系,以便根据这一对应关系实现绑定。
步骤S1200、确定所述生产者相对应的原始消息队列:
如前所述,一个生产者已经对应创建了一个原始消息队列,因此,通过注解文件中的生产者,便可相应确定与所述消费者相对应的原始消息队列。
步骤S1300、将所述消费者添加为所述生产者相对应的原始消息队列的消费者:
至此,便可将所述消费者相对应的唯一性特征信息(可包含于注解文件中)添加至所述生产者相对应的原始消息队列的注册信息中,实现消费者与该原始消息队列的绑定,也就实现了消费者与生产者的绑定。相应也就可以创建所述消费者相对应的消费者线程,用于消费该原始消息队列出列的消息体。
本实施例允许通过注解文件另行注册消费者,以便扩展原始消息队列并行服务于多个下游服务的能力,使原始消息队列具有可扩展性,从而更好地支持其服务集群中多在线服务之间的数据通信。
请参阅图3,深化的实施例中,所述步骤S2300、监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费,包括如下步骤:
步骤S2310、计算每个消息体处于其所在的原始消息队列中的存续时长,比较该存续时长是否超过预设阈值:
本实施例中,不同于本申请的典型实施例所揭示,可在消息体的外部,具体可在原始消息队列相应的监听器中负责计算进入该原始消息队列的各个消息体的存续时长,然后,再依据各个消息体的存续时长与与该原始消息队列相应的预设阈值进行判断,以判断相应的消息体是否超时运行。
步骤S2320、当所述存续时长超过预设阈值时,将相应的消息体转移至重试消息队列进行重试消费:
同理,当发现原始消息队列中的消息体的存续时长超过所述的预设阈值时,便可将其从原始消息队列中删除,并转移至本申请的所述重试消息队列进行重试消费。
本实施例将各消息体的存续时长的计算转移至消息体外部,通过监听器来实施,可以使得即使消息体内部无响应的情况下,依然可以从外部获知相应的存续时长,从而确保更为准确及时地获知每个消息体在原始消息队列中的存续时长,及时做出消息体是否超时的判定,以便实现更可靠的调度,及时确认出故障消息体,将故障消息体及时转移至重试消息队列,以便对原始消息队列造成阻塞。
请参阅图4,深化的实施例中,所述步骤S2400、监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费,包括如下步骤:
步骤S2410、计算每个消息体处于其所在的重试消息队列中的存续时长,比较该存续时长是否超过预设阈值:
本实施例中,不同于本申请的典型实施例所揭示,可在消息体的外部,具体可在重试消息队列相应的监听器中负责计算进入该重试消息队列的各个消息体的存续时长,然后,再依据各个消息体的存续时长与该重试消息队列相应的预设阈值进行判断,以判断相应的消息体是否超时运行。
步骤S2420、当所述存续时长超过预设阈值时,在预设次数范围内将相应的消息体再次置于重试消息队列中排队以待消费:
同理,当发现重试消息队列中的故障消息体的存续时长超过所述的预设阈值时,如果仍在该故障消息体的重试次数仍在预设次数范围内,可将其存续时长置零值,然后将该故障消息体重新置于重试消息队列的队尾中排队,进行新一次的重试消费,以此类推,直至重试次数超过所述的预设次数。期间,如果故障消息体被成功出列消息,则无需再对该故障消息体实施监听。
步骤S2430、监听同一消息体在重试消息队列中的重试次数,当该重试次数达到所述预设次数时,将相应的消息体转移至死信消息队列:
本实施例中,对每个故障消息体在重试消息队列中的重试次数的统计和判断,由重试消息队列相应的监听器负责实施,据此,监听器可以实时获知重试消息队列中各个消息体的重试消费失败相对应的重试次数,当该重试次数未达到所述的预设次数时,可以控制相关故障消息体回到所述步骤S2410中重试消费,当该重试次数达到所述的预设次数时,则可确认其为死亡消息体,从而将其调度转移至本申请的死信消息队列中。
本实施例将各故障消息体的存续时长及其重试消费失败次数的计算转移至消息体外部,通过监听器来实施,可以使得即使故障消息体内部无响应的情况下,依然可以从外部获知相应的存续时长,从而确保更为准确及时地获知每个故障消息体在重试消息队列中的存续时长,及时做出故障消息体是否超时的判定,以便实现更可靠的调度,及时确认出死亡消息体,将死亡消息体转移至重试消息队列,以便对重试消息队列造成阻塞。
请参阅图5,扩展的实施例中,所述步骤S2200、依次控制所述原始消息队列操作其中的消息体的出列的步骤之后,包括如下步骤:
步骤S3100、计算所述原始消息队列对应的下游服务的消息体消费速度以及该原始消息队列的消息体入列速度,判断两者的大小:
本实施例中,可以在本申请的任意一个实施例的基础上,进一步为所述的原始消息队列提供一个异步处理机制,具体而言,预先为所述原始消息队列配置一个异步消息队列,以便在必要时为所述的原始消息队列进行分流。
所述的异步消息队列,其性质与本申请的原始消息队列相同,因此,本申请适用于原始消息队列的控制手段,同理也适用于所述异步消息队列,包括利用本申请的相关技术手段从监听异步消息队列中的消息体是否为故障消息体而将故障消息体转移至重试消息队列、获取异步消息队列中消息体的存续时长用于与相应的预设阈值比较等,由此,使异步消息队列内的消息体与其相应的原始消息队列内的消息体一样,均适用本申请所提出的调度机制。
为了发挥所述异步消息队列的作用,可以通过为本申请的原始消息队列匹配的一个监听器,这一监听器可与其他监听器一体集成,通过该监听器对原始消息队列中的消息体流通速度相关的信息进行计算,具体而言,一方面,采用该原始消息队列所对应的下游服务的QPS(每秒钟请求)计算该原始消息队列相对应的消息体消费速度,另一方面,实时计算生产者投入该原始消息队列的消息体的入列速度,然后利用这两处速度进行大小比较。
步骤S3200、当后者大于前者超过预设阈值时,启用异步消息队列用于分流后续消息体:
可以理解,当所述的入列速度小于所述的消费速度时,表明下游服务的负载不存在超负荷的问题,因此,可以不予处理。但是,当所述的入列速度大于所述的消费速度时,则表明下游服务已经不能满足生产者传递消息体的需求。尽管如此,很多情况下,生产者也可能是短时间内地产出过多消息体,且很快恢复较小流量,于是,为了避免频繁调度,可以设置一个预设阈值,该预设阈值为经验阈值,表征允许生产者产出的消息体速度大于下游服务消费速度的容差范围,据此,只有当所述的入列速度大于所述的消费速度超过该预设阈值的情况下,才启用为原始消息队列配置的异步消息队列,然后将生产者后续产生的消息体分流到异步消息队列中处理,从而减轻原始消息队列的载荷,也为下游服务的处理能力扩展了弹性空间。
本实施例中,通过设置原始消息队列相对应的异步消息队列,可以在原始消息队列过载时为其分流,并且,相应的异步消息队列可以同样适用本申请的重试机制,因此,可使消息系统的运行更为强健。
请参阅图6,扩展的实施例中,所述步骤S2400、监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列的步骤之后,包括如下步骤:
步骤S4100、获取所述死信消息队列中的消费线程的特征信息:
对于所述死信消息队列,可被整理为相应的报告,因此,可通过一个专门的独立线程来负责对所述死信消息队列中的死亡消息体的消费。该独立线程主要负责从死信消息队列出列的各个死亡消息体的相关信息的提取,包括但不限于所述死亡消息体的特征信息、生产者信息、下游服务信息、重试次数等等。
步骤S4200、构造包含所述特征信息的告警信息:
该独立线程获得每个死亡消息体的包含所述特征信息在内的各种相关信息后,便可将其封装为预设的格式,构造为告警信息。
步骤S4300、将所述告警信息发送给预定的接口:
进而,将所述的告警信息发送给预定的接口,该接口包括电子邮件发送接口、数据库存储接口、即时通信系统的消息发送接口等任意一种或任意多种,以便将所述的告警信息通过这些接口送达相应的管理人员进行故障排查。
本实施例中,实现对死亡消息体的信息的进一步的挖掘利用,使其可以用于辅助排查消息系统故障,以便反哺改进消息系统,从而丰富了本申请的技术方案的实用价值。
请参阅图7,适应本申请的目的之一而提供的一种消息队列调度装置,包括:队列配置模块1100、原始出列模块1200、原始监听模块1300以及重试监听模块1400,其中,所述队列配置模块1100,用于根据消息系统配置信息创建相应的原始消息队列,使其用于流通生产者所添加的消息体;所述原始出列模块1200,用于依次控制所述原始消息队列操作其中的消息体的出列,使出列的消息体被预注解订阅的消费者线程消费;所述原始监听模块1300,用于监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费;所述重试监听模块1400,用于监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费。
扩展的实施例中,本申请的消息队列调度装置,还包括:注解获取模块,用于获取注解文件,根据预定的注解标记识别消费者与生产者的对应关系;注解解析模块,用于确定所述生产者相对应的原始消息队列;关系绑定模块,用于将所述消费者添加为所述生产者相对应的原始消息队列的消费者。
深化的实施例中,所述原始监听模块1300,包括:第一时长子模块,用于计算每个消息体处于其所在的原始消息队列中的存续时长,比较该存续时长是否超过预设阈值;重试转移子模块,用于当所述存续时长超过预设阈值时,将相应的消息体转移至重试消息队列进行重试消费。
深化的实施例中,所述重试监听模块1400,包括:第二时长子模块,用于计算每个消息体处于其所在的重试消息队列中的存续时长,比较该存续时长是否超过预设阈值;有限重试子模块,用于当所述存续时长超过预设阈值时,在预设次数范围内将相应的消息体再次置于重试消息队列中排队以待消费;死信转移子模块,用于监听同一消息体在重试消息队列中的重试次数,当该重试次数达到所述预设次数时,将相应的消息体转移至死信消息队列。
扩展的实施例中,本申请的消息队列调度装置,还包括:计算判断模块,用于计算所述原始消息队列对应的下游服务的消息体消费速度以及该原始消息队列的消息体入列速度,判断两者的大小;异步启动模块,用于当后者大于前者超过预设阈值时,启用异步消息队列用于分流后续消息体。
扩展的实施例中,本申请的消息队列调度装置,还包括:特征获取模块,用于获取所述死信消息队列中的消费线程的特征信息;告警构造模块,用于构造包含所述特征信息的告警信息;告警发送模块,用于将所述告警信息发送给预定的接口。
为解决上述技术问题,本申请实施例还提供计算机设备。如图8所示,计算机设备的内部结构示意图。该计算机设备包括通过系统总线连接的处理器、计算机可读存储介质、存储器和网络接口。其中,该计算机设备的计算机可读存储介质存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器执行时,可使得处理器实现一种消息队列调度方法。该计算机设备的处理器用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器中可存储有计算机可读指令,该计算机可读指令被处理器执行时,可使得处理器执行本申请的消息队列调度方法。该计算机设备的网络接口用于与终端连接通信。本领域技术人员可以理解,图8中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
本实施方式中处理器用于执行图7中的各个模块及其子模块的具体功能,存储器存储有执行上述模块或子模块所需的程序代码和各类数据。网络接口用于向用户终端或服务器之间的数据传输。本实施方式中的存储器存储有本申请的消息队列调度装置中执行所有模块/子模块所需的程序代码及数据,服务器能够调用服务器的程序代码及数据执行所有子模块的功能。
本申请还提供一种存储有计算机可读指令的存储介质,计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行本申请任一实施例的消息队列调度方法的步骤。
本申请还提供一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被一个或多个处理器执行时实现本申请任一实施例所述方法的步骤。
本领域普通技术人员可以理解实现本申请上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等计算机可读存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
综上所述,本申请通过在消息系统中增设消息体的重试消息队列及死信消息队列,按梯度对无响应的消息体先后进行重试和停止处理,既避免消息体可能导致原始消息队列阻塞,又能实现对无响应消息的有序调度,使消息系统的服务能力更强健,可确保在线服务的消息传递的可靠性,提升在线服务运行的稳健度。
本技术领域技术人员可以理解,本申请中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本申请中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本申请中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上所述仅是本申请的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (10)
1.一种消息队列调度方法,其特征在于,包括如下步骤:
根据消息系统配置信息创建相应的原始消息队列,使其用于流通生产者所添加的消息体;
依次控制所述原始消息队列操作其中的消息体的出列,使出列的消息体被预注解订阅的消费者线程消费;
监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费;
监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费。
2.根据权利要求1所述的消息队列调度方法,其特征在于,依次控制所述原始消息队列操作其中的消息体的出列的步骤之前,包括:
获取注解文件,根据预定的注解标记识别消费者与生产者的对应关系;
确定所述生产者相对应的原始消息队列;
将所述消费者添加为所述生产者相对应的原始消息队列的消费者。
3.根据权利要求1所述的消息队列调度方法,其特征在于,监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费,包括如下步骤:
计算每个消息体处于其所在的原始消息队列中的存续时长,比较该存续时长是否超过预设阈值;
当所述存续时长超过预设阈值时,将相应的消息体转移至重试消息队列进行重试消费。
4.根据权利要求1所述的消息队列调度方法,其特征在于,监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费,包括如下步骤:
计算每个消息体处于其所在的重试消息队列中的存续时长,比较该存续时长是否超过预设阈值;
当所述存续时长超过预设阈值时,在预设次数范围内将相应的消息体再次置于重试消息队列中排队以待消费;
监听同一消息体在重试消息队列中的重试次数,当该重试次数达到所述预设次数时,将相应的消息体转移至死信消息队列。
5.根据权利要求1所述的消息队列调度方法,其特征在于,依次控制所述原始消息队列操作其中的消息体的出列的步骤之后,包括如下步骤:
计算所述原始消息队列对应的下游服务的消息体消费速度以及该原始消息队列的消息体入列速度,判断两者的大小;
当后者大于前者超过预设阈值时,启用异步消息队列用于分流后续消息体。
6.根据权利要求1至5中任意一项所述的消息队列调度方法,其特征在于,监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列的步骤之后,包括如下步骤:
获取所述死信消息队列中的消费线程的特征信息;
构造包含所述特征信息的告警信息;
将所述告警信息发送给预定的接口。
7.一种消息队列调度装置,其特征在于,包括:
队列配置模块,用于根据消息系统配置信息创建相应的原始消息队列,使其用于流通生产者所添加的消息体;
原始出列模块,用于依次控制所述原始消息队列操作其中的消息体的出列,使出列的消息体被预注解订阅的消费者线程消费;
原始监听模块,用于监听所述原始消息队列的消息体的存续时长,将其中超时未出列的消息体转移至重试消息队列等候出列消费;
重试监听模块,用于监听重试消息队列的消息体的超时重试次数,将其中超时未出列达到预设次数的消息体转移至死信消息队列,以终止对该消息体的消费。
8.一种计算机设备,包括中央处理器和存储器,其特征在于,所述中央处理器用于调用运行存储于所述存储器中的计算机程序以执行如权利要求1至6中任意一项所述的方法的步骤。
9.一种计算机可读存储介质,其特征在于,其以计算机可读指令的形式存储有依据权利要求1至6中任意一项所述的方法所实现的计算机程序,该计算机程序被计算机调用运行时,执行相应的方法所包括的步骤。
10.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现权利要求1至6任意一项中所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111315765.0A CN114138506B (zh) | 2021-11-08 | 2021-11-08 | 消息队列调度方法及其装置、设备、介质、产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111315765.0A CN114138506B (zh) | 2021-11-08 | 2021-11-08 | 消息队列调度方法及其装置、设备、介质、产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114138506A true CN114138506A (zh) | 2022-03-04 |
CN114138506B CN114138506B (zh) | 2024-06-21 |
Family
ID=80393268
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111315765.0A Active CN114138506B (zh) | 2021-11-08 | 2021-11-08 | 消息队列调度方法及其装置、设备、介质、产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114138506B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328680A (zh) * | 2022-09-28 | 2022-11-11 | 天津卓朗昆仑云软件技术有限公司 | 消息队列消费异常的辅助方法、装置和电子设备 |
CN116112880A (zh) * | 2022-11-09 | 2023-05-12 | 上海创蓝云智信息科技股份有限公司 | 基于mq的高并发短信发送方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250250A (zh) * | 2016-08-09 | 2016-12-21 | 广州唯品会信息科技有限公司 | 数据通信方法及装置 |
US20180375783A1 (en) * | 2017-06-27 | 2018-12-27 | Atlassian Pty Ltd | Retry handling in messaging queues |
CN112667439A (zh) * | 2020-12-26 | 2021-04-16 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置及电子设备 |
CN113064741A (zh) * | 2021-04-07 | 2021-07-02 | 上海万物新生环保科技集团有限公司 | 一种消息队列重试方法及设备 |
-
2021
- 2021-11-08 CN CN202111315765.0A patent/CN114138506B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106250250A (zh) * | 2016-08-09 | 2016-12-21 | 广州唯品会信息科技有限公司 | 数据通信方法及装置 |
US20180375783A1 (en) * | 2017-06-27 | 2018-12-27 | Atlassian Pty Ltd | Retry handling in messaging queues |
CN112667439A (zh) * | 2020-12-26 | 2021-04-16 | 北京奇艺世纪科技有限公司 | 数据处理方法、装置及电子设备 |
CN113064741A (zh) * | 2021-04-07 | 2021-07-02 | 上海万物新生环保科技集团有限公司 | 一种消息队列重试方法及设备 |
Non-Patent Citations (2)
Title |
---|
HAO ZHUANG等: "A Service Adaptation Middleware for Delay Tolerant Network based on HTTP Simple Queue Service", 《6TH USENIX/ACM WORKSHOP ON NETWORKED SYSTEMS FOR DEVELOPING REGIONS》, 15 June 2012 (2012-06-15), pages 1 - 6 * |
STARS: "RabbitMQ手动确认+重试+死信队列保证消费可靠性", pages 1 - 9, Retrieved from the Internet <URL:《https://juejin.cn/post/6906819135997640712》> * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115328680A (zh) * | 2022-09-28 | 2022-11-11 | 天津卓朗昆仑云软件技术有限公司 | 消息队列消费异常的辅助方法、装置和电子设备 |
CN115328680B (zh) * | 2022-09-28 | 2023-01-31 | 天津卓朗昆仑云软件技术有限公司 | 消息队列消费异常的辅助方法、装置和电子设备 |
CN116112880A (zh) * | 2022-11-09 | 2023-05-12 | 上海创蓝云智信息科技股份有限公司 | 基于mq的高并发短信发送方法和装置 |
CN116112880B (zh) * | 2022-11-09 | 2023-09-08 | 上海创蓝云智信息科技股份有限公司 | 基于mq的高并发短信发送方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN114138506B (zh) | 2024-06-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106802826B (zh) | 一种基于线程池的业务处理方法及装置 | |
CN109471705B (zh) | 任务调度的方法、设备及系统、计算机设备 | |
CN108712501B (zh) | 信息的发送方法、装置、计算设备以及存储介质 | |
EP2701074B1 (en) | Method, device, and system for performing scheduling in multi-processor core system | |
US9141491B2 (en) | Highly available server system based on cloud computing | |
CN111258737B (zh) | 一种资源调度的方法、装置和过滤式调度器 | |
CN107241281B (zh) | 一种数据处理方法及其装置 | |
CN114138506A (zh) | 消息队列调度方法及其装置、设备、介质、产品 | |
CN101909048B (zh) | 一种集中式转码处理方法和装置 | |
US20080256280A1 (en) | Splitting One Hardware Interrupt To Multiple Handlers | |
CN113422842B (zh) | 一种考虑网络负载的分布式电力用电信息数据采集系统 | |
US9231995B2 (en) | System and method for providing asynchrony in web services | |
CN105610972A (zh) | 集群式的任务调派系统 | |
CN104038390B (zh) | 一种基于netlink的linux服务器集群统一外设事件监听方法 | |
CN109726073A (zh) | 数据库监控方法、装置、设备及可读存储介质 | |
EP3087483A1 (en) | System and method for supporting asynchronous invocation in a distributed data grid | |
CN112667382A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN111371848A (zh) | 一种请求处理方法、装置、设备及存储介质 | |
CN114090207A (zh) | 一种异步任务执行的方法 | |
CN113419876A (zh) | 远程接口代理调用方法、装置以及计算机设备、存储介质 | |
CN109271259A (zh) | 企业服务总线系统、数据处理方法、终端及存储介质 | |
CN111083037A (zh) | 用于实现即时通讯的方法、装置、介质以及电子设备 | |
CN113364857A (zh) | 业务数据的处理方法、装置和服务器 | |
CN106933681A (zh) | 一种多对象阻塞方法及其系统 | |
CN103713946A (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 |