CN116909780B - 基于内存的本地分布式队列插件、系统和队列处理方法 - Google Patents
基于内存的本地分布式队列插件、系统和队列处理方法 Download PDFInfo
- Publication number
- CN116909780B CN116909780B CN202311169012.2A CN202311169012A CN116909780B CN 116909780 B CN116909780 B CN 116909780B CN 202311169012 A CN202311169012 A CN 202311169012A CN 116909780 B CN116909780 B CN 116909780B
- Authority
- CN
- China
- Prior art keywords
- message
- node
- queue
- memory
- state
- 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 9
- 238000012545 processing Methods 0.000 claims abstract description 45
- 238000000034 method Methods 0.000 claims abstract description 24
- 238000004458 analytical method Methods 0.000 claims abstract description 10
- 230000002688 persistence Effects 0.000 claims abstract description 4
- 238000002955 isolation Methods 0.000 claims description 17
- 230000002085 persistent effect Effects 0.000 claims description 6
- 230000002045 lasting effect Effects 0.000 claims description 4
- 238000005096 rolling process Methods 0.000 claims description 4
- 238000012544 monitoring process Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 abstract description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer 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
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
- G06F9/44526—Plug-ins; Add-ons
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种基于内存的本地分布式队列插件、系统和队列处理方法,涉及计算机技术领域,包括消息分析器、节点监听器、节点消息预处理器、内存队列管理器和消息执行器,消息分析器用于响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将消息标记为准备就绪状态;节点消息预处理器用于从节点监听器中获取节点列表,基于节点列表从预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息;内存队列管理器用于为消息分配队列,并按照对应的队列发送至消息执行器,以消息执行器执行消息。本申请无需集成消息队列的软件开发工具包即可进行消息处理,提升了消息的处理效率。
Description
技术领域
本申请涉及计算机技术领域,尤其是涉及一种基于内存的本地分布式队列插件、系统和队列处理方法。
背景技术
在进行程序处理时,为保证程序与程序之间数据传递的可靠性,通常通过引入消息队列中间件的形式进行操作。为了保证消息队列中间件的高可用性,目前常用的方式为对消息队列中间件进行高可用性、可扩展性的必要选型和服务搭建。然而,当服务器资源紧缺时,目前的方案通常还会分配一部分资源为消息队列使用;并且,还需要集成消息队列的软件开发工具包才能“推送”消息,导致消息的处理效率较低。
发明内容
本申请的目的在于提供一种基于内存的本地分布式队列插件、系统和队列处理方法,无需集成消息队列的软件开发工具包即可进行消息处理,提升了消息的处理效率。
第一方面,本发明提供一种基于内存的本地分布式队列插件,运行于生产者服务内,插件包括:消息分析器、节点监听器、节点消息预处理器、内存队列管理器和消息执行器,其中,
消息分析器用于响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将消息标记为准备就绪状态;
节点消息预处理器用于从节点监听器中获取节点列表,基于节点列表从预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息;
内存队列管理器用于为消息分配队列,并按照对应的队列发送至消息执行器,以消息执行器执行消息。
在可选的实施方式中,预制消息规则包括至少包括并发级别、优先级别、隔离级别、隔离对象和异常处理条件;
其中,并发级别包括不可并发和可并发;优先级别包括预设个数的优先级;隔离级别包括无需隔离和需要隔离。
在可选的实施方式中,节点监听器还用于:通过长链接心跳的形式,监听节点对应的在线状态。
在可选的实施方式中,节点消息预处理器,进一步用于:
从节点监听器获取在线节点列表和非在线节点列表;
定时查询预设介质,将执行节点为非在线节点并且节点状态为待定状态的消息进行回滚处理,并提取状态为准备就绪状态的全部节点对应的待执行消息,根据在线节点列表使用一致性哈希环计算执行节点为本节点的消息,并将该节点消息状态更新为待定状态;
将待定状态的节点消息发送至内存队列管理器。
在可选的实施方式中,内存队列管理器,进一步用于:
在收到消息后根据预制消息规则判断是否并发处理;
如果是,选择异步线程池进行并发处理;
如果否,则选择优先队列处理,若没有队列则创建队列,若有队列则直接加入队列。
在可选的实施方式中,内存队列管理器,还用于:
当异步线程池并发处理失败时,将消息推送至延迟队列重试。
在可选的实施方式中,内存队列管理器,还用于:
当监测到队列的空闲时长超过预设时长阈值时,对该空闲队列进行销毁处理,并在消息执行结束后会更新持久化介质状态为结束状态。
第二方面,本发明提供一种基于内存的本地分布式队列系统,包括前述实施方式任一项的基于内存的本地分布式队列插件。
第三方面,本发明提供一种基于内存的本地分布式队列处理方法,方法应用于前述实施方式任一项的基于内存的本地分布式队列插件,方法包括:
通过消息分析器响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将消息标记为准备就绪状态;
通过节点消息预处理器从节点监听器中获取节点列表,基于节点列表从预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息;
通过内存队列管理器为消息分配队列,并按照对应的队列发送至消息执行器,以消息执行器执行消息。
本申请提供的基于内存的本地分布式队列插件、系统和队列处理方法所带来的有益效果:
消息分析器响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将消息标记为准备就绪状态,节点消息预处理器从节点监听器中获取节点列表,基于节点列表从预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息;内存队列管理器为消息分配队列,并按照对应的队列发送至消息执行器,以消息执行器执行消息,从而无需集成消息队列的软件开发工具包即可进行消息处理,提升了消息的处理效率。
附图说明
为了更清楚地说明本申请具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种基于内存的本地分布式队列插件的结构图;
图2为本申请实施例提供的一种具体的基于内存的本地分布式队列插件的处理流程图;
图3为本申请实施例提供的一种基于内存的本地分布式队列消息处理的方法流程图;
图4为本申请实施例提供的一种电子设备的结构图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本申请实施例提供了一种基于内存的本地分布式队列插件、系统和队列处理方法,可以无需集成消息队列的软件开发工具包即可进行消息处理,提升了消息的处理效率。
本申请实施例提供了一种基于内存的本地分布式队列插件,运行于生产者服务内,参见图1所示,该插件包括:消息分析器、节点监听器、节点消息预处理器、内存队列管理器和消息执行器,其中,
消息分析器用于响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将消息标记为准备就绪状态。在一种实施方式中,该预制消息规则包括至少包括并发级别、优先级别、隔离级别、隔离对象和异常处理条件;其中,并发级别包括不可并发和可并发;优先级别包括预设个数的优先级;隔离级别包括无需隔离和需要隔离;隔离对象为需要隔离的消息所对应的对象。
上述节点消息预处理器用于从节点监听器中获取节点列表,基于节点列表从预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息。其中,节点监听器通过长链接心跳的形式,监听节点对应的在线状态。预设介质诸如可以为Mysql。
在具体实施时,上述节点消息预处理器,可以通过从节点监听器获取在线节点列表和非在线节点列表(也可称为存活节点列表和非存活节点列表)。
定时查询预设介质,将执行节点为非在线节点并且节点状态为待定状态的消息进行回滚处理,并提取状态为准备就绪状态的全部节点对应的待执行消息,根据在线节点列表使用一致性哈希环计算执行节点为本节点的消息,并将该节点消息状态更新为待定状态;将待定状态的节点消息发送至内存队列管理器。
上述内存队列管理器用于为消息分配队列,并按照对应的队列发送至消息执行器,以消息执行器执行消息。具体的,在为消息分配队列时,如果有队列则加入已有的队列,若无队列,则创建队列并加入该创建的队列。
具体的,上述内存队列管理器,在收到消息后根据预制消息规则判断是否并发处理;如果可以并发处理,选择异步线程池进行并发处理;如果不可并发处理,则选择优先队列处理,若没有队列则创建队列,若有队列则直接加入队列。
进一步,内存队列管理器,还用于:当异步线程池并发处理失败时,将消息推送至延迟队列重试。
可选的,内存队列管理器,当监测到队列的空闲时长超过预设时长阈值时,对该空闲队列进行销毁处理,并在消息执行结束后会更新持久化介质状态为结束状态。
本申请实施例还提供了一种具体的插件处理消息的流程,如图2所示,如图所示,此插件运行在生产者服务内,在响应http请求前,预先对生产者的各类请求和方法在预制消息规则中进行消息规则的绑定。
当获得http请求后,通过消息分析器进行规则分析,此操作需要依赖之前在预制消息规则中设置的规则。分析后会将消息持久化到持久化介质(也即Mysql)中,并把消息标记为准备就绪(ready)状态。
节点监听器使用长链接心跳的方式监听每个生产者节点的存活状态(也即在线状态)。
节点消息预处理器可以每1s(在实际应用中,也可以设置其他时间间隔)从持久化介质中全部信息进行一致性hash环计算,算出本节点需要执行的消息,使用分布式锁保证此操作串行之行,并根据节点监听器的节点信息将不在线节点的待定状态(pending状态)回滚成准备就绪状态(ready状态)(此操作为修正行为,防止生产者高可用节点掉线),本节点消息状态修改成pending,然后将获得的消息发送给内存队列管理器。
内存队列管理器在收到消息时先根据规则判断如果不能并发就选择优先队列处理,如果没有队列就创建,如果能并发就选择异步线程池并发处理,处理失败放入延迟队列重试,处理时交给消息执行器处理,执行器会执行调用下游消费者的动作。当队列长时间空闲时会自动销毁,消息执行结束后会更新持久化介质状态为end。
上述预制消息规则,包括:
并发级别:1不可不并发,大于1可以并发;
优先级别:1~5,优先队列会根据不同的优先级别,优先执行优先级高的消息;
隔离级别:0无需隔离,1需要隔离,什么消息不能同时执行;
隔离对象:隔离消息对应的对象;
异常处理:失败是否重试,重试几次,处理策略等设置。
综上,本申请实施例无需集成消息队列的软件开发工具包即可进行消息处理,提升了消息的处理效率。
本申请实施例还提供了一种基于内存的本地分布式队列系统,包括前述实施方式任一项的基于内存的本地分布式队列插件。
本申请实施例还提供了一种基于内存的本地分布式队列处理方法,方法应用于前述实施方式任一项的基于内存的本地分布式队列插件,参见图3所示,该方法包括以下步骤:
步骤310,通过消息分析器响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将消息标记为准备就绪状态;
步骤320,通过节点消息预处理器从节点监听器中获取节点列表,基于节点列表从预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息;
步骤330,通过内存队列管理器为消息分配队列,并按照对应的队列发送至消息执行器,以消息执行器执行消息。
在一种实施方式中,上述预制消息规则包括至少包括并发级别、优先级别、隔离级别、隔离对象和异常处理条件;其中,并发级别包括不可并发和可并发;优先级别包括预设个数的优先级;隔离级别包括无需隔离和需要隔离。
可选的,在进行节点监听时,节点监听器通过长链接心跳的形式,监听节点对应的在线状态。
进一步,上述步骤S320在具体实施时,可以进一步包括以下步骤1-1至步骤1-3:
步骤1-1,节点消息预处理器从节点监听器获取在线节点列表和非在线节点列表;
步骤1-2,定时查询预设介质,将执行节点为非在线节点并且节点状态为待定状态的消息进行回滚处理,并提取状态为准备就绪状态的全部节点对应的待执行消息,根据在线节点列表使用一致性哈希环计算执行节点为本节点的消息,并将该节点消息状态更新为待定状态;
步骤1-3,将待定状态的节点消息发送至内存队列管理器。
在可选的实施方式中,在进行消息队列处理时,可以进一步包括以下步骤2-1至步骤2-3:
步骤2-1,在收到消息后根据预制消息规则判断是否并发处理;
步骤2-2,如果是,选择异步线程池进行并发处理;
步骤2-3,如果否,则选择优先队列处理,若没有队列则创建队列,若有队列则直接加入队列。
进一步,当异步线程池并发处理失败时,内存队列管理器,将消息推送至延迟队列重试。
当监测到队列的空闲时长超过预设时长阈值时,内存队列管理器还可以对该空闲队列进行销毁处理,并在消息执行结束后会更新持久化介质状态为结束状态。
本申请实施例提供的基于内存的本地分布式队列插件方法,其实现原理及产生的技术效果和前述插件实施例相同,为简要描述,基于内存的本地分布式队列插件方法的实施例部分未提及之处,可参考前述基于内存的本地分布式队列插件实施例中相应内容。
本申请实施例还提供了一种电子设备,如图4所示,为该电子设备的结构示意图,其中,该电子设备100包括处理器41和存储器40,该存储器40存储有能够被该处理器41执行的计算机可执行指令,该处理器41执行该计算机可执行指令以实现上述任一项基于内存的本地分布式队列插件。
在图4示出的实施方式中,该电子设备还包括总线42和通信接口43,其中,处理器41、通信接口43和存储器40通过总线42连接。
其中,存储器40可能包含高速随机存取存储器(RAM,Random Access Memory),也可能还包括非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器。通过至少一个通信接口43(可以是有线或者无线)实现该系统网元与至少一个其他网元之间的通信连接,可以使用互联网,广域网,本地网,城域网等。总线42可以是ISA(IndustryStandard Architecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线42可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
处理器41可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器41中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器41可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器41读取存储器中的信息,结合其硬件完成前述实施例的基于内存的本地分布式队列插件的步骤。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令在被处理器调用和执行时,该计算机可执行指令促使处理器实现上述基于内存的本地分布式队列插件,具体实现可参见前述方法实施例,在此不再赘述。
本申请实施例所提供的基于内存的本地分布式队列插件、系统和队列处理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行前面方法实施例中所述的方法,具体实现可参见方法实施例,在此不再赘述。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本申请的范围。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在本申请的描述中,还需要说明的是,除非另有明确的规定和限定,术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。
Claims (7)
1.一种基于内存的本地分布式队列插件,其特征在于,运行于生产者服务内,所述插件包括:消息分析器、节点监听器、节点消息预处理器、内存队列管理器和消息执行器,其中,
所述消息分析器用于响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将所述消息标记为准备就绪状态;
所述节点消息预处理器用于从所述节点监听器中获取节点列表,基于所述节点列表从所述预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息;
所述内存队列管理器用于为所述消息分配队列,并按照对应的队列发送至消息执行器,以所述消息执行器执行所述消息;
所述节点消息预处理器,还用于:
从所述节点监听器获取在线节点列表和非在线节点列表;定时查询所述预设介质,将执行节点为非在线节点并且节点状态为待定状态的消息进行回滚处理,并提取状态为准备就绪状态的全部节点对应的待执行消息,根据在线节点列表使用一致性哈希环计算所述执行节点为本节点的消息,并将该节点消息状态更新为待定状态;将所述待定状态的节点消息发送至所述内存队列管理器;
所述内存队列管理器,还用于:在收到消息后根据所述预制消息规则判断是否并发处理;如果是,选择异步线程池进行并发处理;如果否,则选择优先队列处理,若没有队列则创建队列,若有队列则直接加入队列。
2.根据权利要求1所述的基于内存的本地分布式队列插件,其特征在于,所述预制消息规则包括至少包括并发级别、优先级别、隔离级别、隔离对象和异常处理条件;
其中,并发级别包括不可并发和可并发;优先级别包括预设个数的优先级;隔离级别包括无需隔离和需要隔离。
3.根据权利要求1所述的基于内存的本地分布式队列插件,其特征在于,所述节点监听器还用于:通过长链接心跳的形式,监听节点对应的在线状态。
4.根据权利要求1所述的基于内存的本地分布式队列插件,其特征在于,所述内存队列管理器,还用于:
当异步线程池并发处理失败时,将所述消息推送至延迟队列重试。
5.根据权利要求4所述的基于内存的本地分布式队列插件,其特征在于,所述内存队列管理器,还用于:
当监测到队列的空闲时长超过预设时长阈值时,对空闲队列进行销毁处理,并在消息执行结束后会更新持久化介质状态为结束状态。
6.一种基于内存的本地分布式队列系统,其特征在于,包括权利要求1至5任一项所述的基于内存的本地分布式队列插件。
7.一种基于内存的本地分布式队列处理方法,其特征在于,所述方法应用于权利要求1至5任一项所述的基于内存的本地分布式队列插件,所述方法包括:
通过消息分析器响应http请求,基于预制消息规则进行规则分析,将分析后得到的消息进行持久化后至预设介质,并将所述消息标记为准备就绪状态;
通过节点消息预处理器从所述节点监听器中获取节点列表,基于所述节点列表从所述预设介质进行定时查询,并计算准备就绪状态的目标节点对应的消息;
通过内存队列管理器为所述消息分配队列,并按照对应的队列发送至消息执行器,以所述消息执行器执行所述消息;
所述方法还包括:
通过所述节点消息预处理器从所述节点监听器获取在线节点列表和非在线节点列表;定时查询所述预设介质,将执行节点为非在线节点并且节点状态为待定状态的消息进行回滚处理,并提取状态为准备就绪状态的全部节点对应的待执行消息,根据在线节点列表使用一致性哈希环计算所述执行节点为本节点的消息,并将该节点消息状态更新为待定状态;将所述待定状态的节点消息发送至所述内存队列管理器;
通过所述内存队列管理器在收到消息后根据所述预制消息规则判断是否并发处理;如果是,选择异步线程池进行并发处理;如果否,则选择优先队列处理,若没有队列则创建队列,若有队列则直接加入队列。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311169012.2A CN116909780B (zh) | 2023-09-12 | 2023-09-12 | 基于内存的本地分布式队列插件、系统和队列处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311169012.2A CN116909780B (zh) | 2023-09-12 | 2023-09-12 | 基于内存的本地分布式队列插件、系统和队列处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116909780A CN116909780A (zh) | 2023-10-20 |
CN116909780B true CN116909780B (zh) | 2023-11-17 |
Family
ID=88367160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311169012.2A Active CN116909780B (zh) | 2023-09-12 | 2023-09-12 | 基于内存的本地分布式队列插件、系统和队列处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116909780B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法和监视系统 |
CN106874424A (zh) * | 2017-01-25 | 2017-06-20 | 杭州淘淘搜科技有限公司 | 一种基于MongoDB和Redis的网页数据采集处理方法及系统 |
WO2021114816A1 (zh) * | 2020-05-15 | 2021-06-17 | 平安科技(深圳)有限公司 | 基于机器人操作系统的消息处理方法、装置及计算机设备 |
WO2023071576A1 (zh) * | 2021-10-28 | 2023-05-04 | 中移(苏州)软件技术有限公司 | 容器集群构建方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107885594B (zh) * | 2016-09-30 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 分布式资源调度方法、调度节点及接入节点 |
-
2023
- 2023-09-12 CN CN202311169012.2A patent/CN116909780B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102360310A (zh) * | 2011-09-28 | 2012-02-22 | 中国电子科技集团公司第二十八研究所 | 一种分布式系统环境下的多任务进程监视方法和监视系统 |
CN106874424A (zh) * | 2017-01-25 | 2017-06-20 | 杭州淘淘搜科技有限公司 | 一种基于MongoDB和Redis的网页数据采集处理方法及系统 |
WO2021114816A1 (zh) * | 2020-05-15 | 2021-06-17 | 平安科技(深圳)有限公司 | 基于机器人操作系统的消息处理方法、装置及计算机设备 |
WO2023071576A1 (zh) * | 2021-10-28 | 2023-05-04 | 中移(苏州)软件技术有限公司 | 容器集群构建方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN116909780A (zh) | 2023-10-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113766035B (zh) | 一种业务受理及共识的方法及装置 | |
CN109600375B (zh) | 消息跟踪方法、装置、电子设备及存储介质 | |
CN108123851B (zh) | 分布式系统中主从节点同步链路的存活检测方法及装置 | |
US20170289044A1 (en) | Highly available servers | |
US10642585B1 (en) | Enhancing API service schemes | |
CN113067875A (zh) | 基于微服务网关动态流控的访问方法和装置以及设备 | |
CN111245930A (zh) | 跨平台消息推送方法、装置、计算机设备及存储介质 | |
CN110442623B (zh) | 大数据挖掘方法、装置及数据挖掘服务器 | |
CN111432039A (zh) | Cdn中数据请求方法、装置、设备和cdn节点 | |
CN116909780B (zh) | 基于内存的本地分布式队列插件、系统和队列处理方法 | |
CN112437155B (zh) | 服务数据的处理方法、装置以及服务端设备 | |
CN117762652A (zh) | 基于消息中间件的分布式事务的处理方法及装置 | |
CN111831408A (zh) | 异步任务处理方法、装置、电子设备及介质 | |
CN112600842A (zh) | 集群shell方法、装置、电子设备及计算机可读存储介质 | |
CN111857995A (zh) | 进程调度方法和装置、存储介质及电子装置 | |
CN109905459B (zh) | 一种数据传输方法及装置 | |
CN113746920B (zh) | 一种数据转发方法、装置、电子设备及计算机可读存储介质 | |
CN109151016B (zh) | 流量转发方法和装置、服务系统、计算设备及存储介质 | |
CN107967181B (zh) | 临界区的控制方法及装置 | |
CN114285903B (zh) | 请求处理方法、装置、系统及电子设备 | |
CN115378831B (zh) | 一种消息中间件服务器的监测方法和装置 | |
CN112527521B (zh) | 消息处理方法及设备 | |
CN115328680B (zh) | 消息队列消费异常的辅助方法、装置和电子设备 | |
CN118264665A (zh) | 消息发送方法、装置、系统和电子设备 | |
CN117097597A (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 |