CN107391279B - 一种消息队列容器创建方法、装置及消息队列容器 - Google Patents

一种消息队列容器创建方法、装置及消息队列容器 Download PDF

Info

Publication number
CN107391279B
CN107391279B CN201710639365.2A CN201710639365A CN107391279B CN 107391279 B CN107391279 B CN 107391279B CN 201710639365 A CN201710639365 A CN 201710639365A CN 107391279 B CN107391279 B CN 107391279B
Authority
CN
China
Prior art keywords
message
message queue
container
queue container
queue
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
Application number
CN201710639365.2A
Other languages
English (en)
Other versions
CN107391279A (zh
Inventor
张裕超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Cloud Information Technology Co Ltd
Original Assignee
Inspur Cloud Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Cloud Information Technology Co Ltd filed Critical Inspur Cloud Information Technology Co Ltd
Priority to CN201710639365.2A priority Critical patent/CN107391279B/zh
Publication of CN107391279A publication Critical patent/CN107391279A/zh
Application granted granted Critical
Publication of CN107391279B publication Critical patent/CN107391279B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

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)
  • Stored Programmes (AREA)

Abstract

本发明提供了一种消息队列容器创建方法、装置及消息队列容器,该方法包括:修改目标对象的应用程序;确定目标对象的配置文件,且配置文件中包括有至少一个参数;通过执行修改后的应用程序并加载配置文件,创建目标对象对应的消息队列容器,其中,创建出的消息队列容器满足所述至少一个参数。对于任一目标对象,基于其应用程序和配置文件,即可创建其对应的消息队列容器,以进行其相关消息处理。这一轻量级消息队列容器可以替代现有的消息队列组件,故无需部署消息队列组件。因此,本方案能够降低资源占用率。

Description

一种消息队列容器创建方法、装置及消息队列容器
技术领域
本发明涉及计算机技术领域,特别涉及一种消息队列容器创建方法、装置及消息队列容器。
背景技术
随着IT技术的发展,消息队列技术被大量使用。随着系统的并发程度提高,系统内部逻辑之间的耦合较高,会使程序处理请求的速度变慢。使用消息队列对系统内部进行解耦,异步处理事件,可以提高系统的可扩展性和灵活性。
目前,可以单独部署或者在多个机器上分布式部署单独的消息队列组件,比如kafka、ActiveMq等。
但是,单独的消息队列组件的资源占用率较高。
发明内容
本发明提供了一种消息队列容器创建方法、装置及消息队列容器,能够降低资源占用率。
为了达到上述目的,本发明是通过如下技术方案实现的:
第一方面,本发明提供了一种消息队列容器创建方法,包括:
修改目标对象的应用程序;
确定所述目标对象的配置文件,所述配置文件中包括有至少一个参数;
通过执行修改后的所述应用程序并加载所述配置文件,创建所述目标对象对应的消息队列容器,其中,所述消息队列容器满足所述至少一个参数。
进一步地,所述修改目标对象的应用程序,包括:将预设的生产者接口对应的代码程序、消费者接口对应的代码程序、容器创建代码程序增加至目标对象的应用程序中;
所述消息队列容器中包括有所述生产者接口和所述消费者接口。
进一步地,所述至少一个参数包括:主题名称数量上限、队列消息数量上限、队列溢出处理值中的任意一种或多种;
所述消息队列容器满足所述至少一个参数包括:所述消息队列容器中包括的主题名称的个数不大于所述主题名称数量上限,且任一所述主题名称对应的消息链表的容量不大于所述队列消息数量上限。
第二方面,本发明提供了一种消息队列容器创建装置,包括:
修改单元,用于修改目标对象的应用程序;
确定单元,用于确定所述目标对象的配置文件,所述配置文件中包括有至少一个参数;
创建单元,用于通过执行修改后的所述应用程序并加载所述配置文件,创建所述目标对象对应的消息队列容器,其中,所述消息队列容器满足每一个所述参数。
进一步地,所述修改单元,具体用于将预设的生产者接口对应的代码程序、消费者接口对应的代码程序、容器创建代码程序增加至目标对象的应用程序中;
所述消息队列容器中包括有所述生产者接口和所述消费者接口。
第三方面,本发明提供了一种消息队列容器,所述消息队列容器利用上述任一所述的消息队列容器创建方法进行创建。
进一步地,所述消息队列容器中包括有生产者接口和消费者接口。
进一步地,所述至少一个参数包括:主题名称数量上限、队列消息数量上限、队列溢出处理值;
所述消息队列容器中还包括第一处理单元、第二处理单元、第三处理单元、第四处理单元;
所述生产者接口,用于接收外部输入的新消息和所述新消息对应的第一主题名称;
所述第一处理单元,用于判断所述消息队列容器中是否存在所述第一主题名称,若是,触发所述第二处理单元,否则,触发所述第四处理单元;
所述第二处理单元,用于判断所述第一主题名称对应的第一消息链表中的消息数量是否小于所述队列消息数量上限,若是,将所述新消息增加至所述第一消息链表的队尾,否则,触发所述第三处理单元;
所述第三处理单元,用于在确定出所述队列溢出处理值为remove Oldest时,将所述第一消息链表中的队首消息移除,并将所述新消息增加至所述第一消息链表的队尾;在确定出所述队列溢出处理值为remove Latest时,放弃所述新消息;在确定出所述队列溢出处理值为wait时,以及进一步监测到所述第一消息链表中的队首消息被移除时,将所述新消息增加至所述第一消息链表的队尾;
所述第四处理单元,用于判断所述消息队列容器中存在的主题名称数量是否小于所述主题名称数量上限,若是,创建所述第一主题名称及其对应的消息链表,并将所述新消息增加至该消息链表的队尾,否则,向所述生产者接口返回预设的错误代码。
进一步地,所述第四处理单元,具体用于基于所述队列消息数量上限,创建所述第一主题名称对应的消息链表,以使该消息链表的容量与所述队列消息数量上限相一致。
进一步地,所述消息队列容器中还包括:第五处理单元;
所述消息队列容器中包括有至少一个主题名称及每一个主题名称对应的消息链表,且所述至少一个主题名称中包括第二主题名称;
所述消费者接口,用于接收外部输入的所述第二主题名称;
所述第五处理单元,用于将所述第二主题名称对应的消息链表的队首消息移出,并将移出的所述队首消息推送至所述消费者接口。
本发明提供了一种消息队列容器创建方法、装置及消息队列容器,该方法包括:修改目标对象的应用程序;确定目标对象的配置文件,且配置文件中包括有至少一个参数;通过执行修改后的应用程序并加载配置文件,创建目标对象对应的消息队列容器,其中,创建出的消息队列容器满足所述至少一个参数。对于任一目标对象,基于其应用程序和配置文件,即可创建其对应的消息队列容器,以进行其相关消息处理。这一轻量级消息队列容器可以替代现有的消息队列组件,故无需部署消息队列组件。因此,本发明能够降低资源占用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种消息队列容器创建方法的流程图;
图2是本发明一实施例提供的另一种消息队列容器创建方法的流程图;
图3是本发明一实施例提供的一种消息队列容器创建装置的示意图;
图4是本发明一实施例提供的一种消息队列容器的示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种消息队列容器创建方法,可以包括以下步骤:
步骤101:修改目标对象的应用程序。
步骤102:确定所述目标对象的配置文件,所述配置文件中包括有至少一个参数。
步骤103:通过执行修改后的所述应用程序并加载所述配置文件,创建所述目标对象对应的消息队列容器,其中,所述消息队列容器满足所述至少一个参数。
本发明实施例提供了一种消息队列容器创建方法,修改目标对象的应用程序;确定目标对象的配置文件,且配置文件中包括有至少一个参数;通过执行修改后的应用程序并加载配置文件,创建目标对象对应的消息队列容器,其中,创建出的消息队列容器满足所述至少一个参数。对于任一目标对象,基于其应用程序和配置文件,即可创建其对应的消息队列容器,以进行其相关消息处理。这一轻量级消息队列容器可以替代现有的消息队列组件,故无需部署消息队列组件。因此,本发明实施例能够降低资源占用率。
详细地,目标对象可以为任一单元部件,比如可以为服务器中的任一单元部件。基于任一单元部件的应用程序以创建消息队列容器,则创建出的消息队列容器仅用于处理该单元部件相关消息。如此,这一消息队列容器是轻量级的、资源占用程度远低于现有的消息队列组件。
在本发明的一个实施例中,所述修改目标对象的应用程序,包括:将预设的生产者接口对应的代码程序、消费者接口对应的代码程序、容器创建代码程序增加至目标对象的应用程序中;
所述消息队列容器中包括有所述生产者接口和所述消费者接口。
详细地,生产者接口对应的代码程序和消费者接口对应的代码程序可以为行业标准代码程序,容器创建代码程序可以为工作人员根据自身需求编写的代码程序。
通过将这些代码程序增加至目标对象的应用程序的相应位置处,当通过执行应用程序以启动该目标对象时,基于添加的代码程序可以创建出一个包括有生产者接口和消费者接口的消息队列容器。这一消息队列容器是仅对应于目标对象的,用于处理目标对象相关消息。
优选地,消息队列容器的创建个数通常为一个。
在本发明的一个实施例中,所述至少一个参数包括:主题名称数量上限、队列消息数量上限、队列溢出处理值中的任意一种或多种;
所述消息队列容器满足所述至少一个参数包括:所述消息队列容器中包括的主题名称的个数不大于所述主题名称数量上限,且任一所述主题名称对应的消息链表的容量不大于所述队列消息数量上限。
举例来说,配置文件可以为mq.properties,该配置文件中包括三个参数,分别为主题名称数量上限、队列消息数量上限、队列溢出处理值。
在本发明一个实施例中,消息队列容器在创建完成时,可以包括生产者接口和消费者接口,但不包括任一主题名称和任一消息链表。当生产者通过生产者接口发送新消息时,消息队列容器基于该新消息以生成对应的主题名称和消息链表,来管理该新消息。基于这一实现方式,创建的消息队列容器中可以包括有若干主题名称,及各主题名称对应的消息链表。
通常情况下,消息队列容器中包括的主题名称的个数应不大于配置文件中的参数:主题名称数量上限,包括的消息链表的个数应不大于配置文件中的参数:队列消息数量上限。
基于配置文件中的参数:队列溢出处理值,可以对生产者接口接收到的新消息进行处理。在本发明一个实施例中,队列溢出处理值可以为remove Oldest、remove Latest、wait中的任意一个。
在后台程序中,需要使用一些轻量级的内部消息队列,对队列任务进行管理。消息队列作为中间人,按顺序存储生产者生产的消息,并向消费者提供其需要的消息。如此,可以创建一个轻量级的系统内部使用的消息队列容器。比如,如图2所示,本发明一个实施例提供了另一种消息队列容器创建方法,具体包括以下步骤:
步骤201:将预设的生产者接口对应的代码程序、消费者接口对应的代码程序、容器创建代码程序增加至目标对象的应用程序中。
步骤202:确定目标对象的配置文件,配置文件中包括有3个参数。
详细地,这3个参数可以为主题名称数量上限、队列消息数量上限、队列溢出处理值。
步骤203:通过执行修改后的应用程序并加载配置文件,创建目标对象对应的消息队列容器,其中,消息队列容器满足上述3个参数。
详细地,创建的消息队列容器中包括有生产者接口和消费者接口。
详细地,配置文件中的3个参数可以对创建出的消息队列容器进行限定,比如,消息队列容器中包括的主题名称的个数不大于主题名称数量上限,且任一主题名称对应的消息链表的容量不大于队列消息数量上限,基于队列溢出处理值,消息队列容器可以对生产者接口接收到的新消息进行处理。
本发明实施例中,创建的轻量级消息队列容器,可以解耦程序中的同步逻辑,使消息可以按顺序被异步处理,既保证了程序逻辑的顺序性,又能解耦逻辑之间的相互依赖,从而可以提高程序的可扩展性、灵活性,优化用户体验,降低硬件资源、网络资源占用程度,以及降低开发者的学习成本。
如图3所示,本发明一个实施例提供了一种消息队列容器创建装置,包括:
修改单元301,用于修改目标对象的应用程序;
确定单元302,用于确定所述目标对象的配置文件,所述配置文件中包括有至少一个参数;
创建单元303,用于通过执行修改后的所述应用程序并加载所述配置文件,创建所述目标对象对应的消息队列容器,其中,所述消息队列容器满足每一个所述参数。
在本发明一个实施例中,所述修改单元301,具体用于将预设的生产者接口对应的代码程序、消费者接口对应的代码程序、容器创建代码程序增加至目标对象的应用程序中;
所述消息队列容器中包括有所述生产者接口和所述消费者接口。
在本发明的一个实施例中,所述至少一个参数包括:主题名称数量上限、队列消息数量上限、队列溢出处理值中的任意一种或多种;
所述消息队列容器满足所述至少一个参数包括:所述消息队列容器中包括的主题名称的个数不大于所述主题名称数量上限,且任一所述主题名称对应的消息链表的容量不大于所述队列消息数量上限。
上述装置内的各单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。
基于上述内容,本发明实施例提供了一种消息队列容器,所述消息队列容器利用上述任一所述的消息队列容器创建方法进行创建。
在本发明一个实施例中,请参照图4,所述消息队列容器中包括有生产者接口401和消费者接口402。
详细地,生产者接口和消费者接口主要用于实现消息队列容器与外部的任一生产者和任一消费者之间的信息交互。比如,任一生产者可以将其生产的新消息经生产者接口存入消息队列容器中,任一消费者可以消费消息队列容器中存储的各个消息。
在本发明一个实施例中,接口方法可以为同步方法,以防止因并发问题导致消息丢失等。
在本发明一个实施例中,请参照图4,所述至少一个参数包括:主题名称数量上限、队列消息数量上限、队列溢出处理值;
所述消息队列容器中还包括第一处理单元403、第二处理单元404、第三处理单元405、第四处理单元406;
所述生产者接口401,用于接收外部输入的新消息和所述新消息对应的第一主题名称;
所述第一处理单元403,用于判断所述消息队列容器中是否存在所述第一主题名称,若是,触发所述第二处理单元404,否则,触发所述第四处理单元406;
所述第二处理单元404,用于判断所述第一主题名称对应的第一消息链表中的消息数量是否小于所述队列消息数量上限,若是,将所述新消息增加至所述第一消息链表的队尾,否则,触发所述第三处理单元405;
所述第三处理单元405,用于在确定出所述队列溢出处理值为remove Oldest时,将所述第一消息链表中的队首消息移除,并将所述新消息增加至所述第一消息链表的队尾;在确定出所述队列溢出处理值为remove Latest时,放弃所述新消息;在确定出所述队列溢出处理值为wait时,以及进一步监测到所述第一消息链表中的队首消息被移除时,将所述新消息增加至所述第一消息链表的队尾;
所述第四处理单元406,用于判断所述消息队列容器中存在的主题名称数量是否小于所述主题名称数量上限,若是,创建所述第一主题名称及其对应的消息链表,并将所述新消息增加至该消息链表的队尾,否则,向所述生产者接口返回预设的错误代码。
详细地,对于生产者经调用生产者接口发来的任一新消息,基于上述四个单元,可以根据不同情况以对该新消息进行相应处理,比如,存入、放弃、等待,具体地,以及明确存入位置等。
可以看出,消息队列容器的消息处理实现方式可以基于配置文件中的参数得以实现,工作人员通过更改配置文件,可以对消息处理实现方式进行相应调整或更改。因此,本发明实施例中,开发者只需管理配置文件,通过调用生产者接口和消费者接口,即可实现消息管理,故开发者能够快速学习并投入使用。
在本发明一个实施例中,请参照图4,所述第四处理单元406,具体用于基于所述队列消息数量上限,创建所述第一主题名称对应的消息链表,以使该消息链表的容量与所述队列消息数量上限相一致。
详细地,创建一个新的消息链表时,该消息链表的容量,即该消息链表可以存储的消息数量可以等于配置文件中的参数:队列消息数量上限。当然,也可以小于这一上限。
在本发明一个实施例中,请参照图4,所述消息队列容器中还包括:第五处理单元407;
所述消息队列容器中包括有至少一个主题名称及每一个主题名称对应的消息链表,且所述至少一个主题名称中包括第二主题名称;
所述消费者接口402,用于接收外部输入的所述第二主题名称;
所述第五处理单元407,用于将所述第二主题名称对应的消息链表的队首消息移出,并将移出的所述队首消息推送至所述消费者接口。
详细地,对于消费者经消费者接口发来的针对任一消息的消费请求,当消息队列容器中存储有该消息时,可以将该消息经消费者接口发送至消费者,同时将该消息从相应消息链表中删除。比如,消费者发来一个主题名称时,默认该主题名称对应消息链表的队首消息为消费者所需消息。
在本发明一个实施例中,消息队列容器的一种可能实现方式可以为,消息队列容器中包含一个图,图中包含有至少一个元素。其中,每个元素的键为主题名称,值是该主题名称对应的消息链表。
如此,本发明实施例可以提供一种基于图和链表实现轻量级程序内部消息处理的消息队列容器,这一消息列表容器可以解决需要使用轻量级程序内部消息队列时,普通链表过于简单无法管理,而使用单独部署的消息队列组件又太过浪费资源的问题。
综上所述,本发明的各个实施例至少具有如下有益效果:
1、本发明实施例中,修改目标对象的应用程序;确定目标对象的配置文件,且配置文件中包括有至少一个参数;通过执行修改后的应用程序并加载配置文件,创建目标对象对应的消息队列容器,其中,创建出的消息队列容器满足所述至少一个参数。对于任一目标对象,基于其应用程序和配置文件,即可创建其对应的消息队列容器,以进行其相关消息处理。这一轻量级消息队列容器可以替代现有的消息队列组件,故无需部署消息队列组件。因此,本发明实施例能够降低资源占用率。
2、本发明实施例中,创建的轻量级消息队列容器,可以解耦程序中的同步逻辑,使消息可以按顺序被异步处理,既保证了程序逻辑的顺序性,又能解耦逻辑之间的相互依赖,从而可以提高程序的可扩展性、灵活性,优化用户体验,降低硬件资源、网络资源占用程度,以及降低开发者的学习成本。
3、本发明实施例中,开发者只需管理配置文件,通过调用生产者接口和消费者接口,即可实现消息管理,故开发者能够快速学习并投入使用。
4、本发明实施例中,可以提供一种基于图和链表实现轻量级程序内部消息处理的消息队列容器,这一消息列表容器可以解决需要使用轻量级程序内部消息队列时,普通链表过于简单无法管理,而使用单独部署的消息队列组件又太过浪费资源的问题。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (7)

1.一种消息队列容器创建方法,其特征在于,包括:
修改目标对象的应用程序;
确定所述目标对象的配置文件,所述配置文件中包括有至少一个参数;
通过执行修改后的所述应用程序并加载所述配置文件,创建所述目标对象对应的消息队列容器,其中,所述消息队列容器满足所述至少一个参数;
所述修改目标对象的应用程序,包括:将预设的生产者接口对应的代码程序、消费者接口对应的代码程序、容器创建代码程序增加至目标对象的应用程序中;
所述消息队列容器中包括有所述生产者接口和所述消费者接口。
2.根据权利要求1所述的方法,其特征在于,
所述至少一个参数包括:主题名称数量上限、队列消息数量上限、队列溢出处理值中的任意一种或多种;
所述消息队列容器满足所述至少一个参数包括:所述消息队列容器中包括的主题名称的个数不大于所述主题名称数量上限,且任一所述主题名称对应的消息链表的容量不大于所述队列消息数量上限。
3.一种消息队列容器创建装置,其特征在于,包括:
修改单元,用于修改目标对象的应用程序;
确定单元,用于确定所述目标对象的配置文件,所述配置文件中包括有至少一个参数;
创建单元,用于通过执行修改后的所述应用程序并加载所述配置文件,创建所述目标对象对应的消息队列容器,其中,所述消息队列容器满足每一个所述参数;
所述修改单元,具体用于将预设的生产者接口对应的代码程序、消费者接口对应的代码程序、容器创建代码程序增加至目标对象的应用程序中;
所述消息队列容器中包括有所述生产者接口和所述消费者接口。
4.一种消息队列容器,其特征在于,所述消息队列容器利用如权利要求1所述的消息队列容器创建方法进行创建;
所述消息队列容器中包括有生产者接口和消费者接口。
5.根据权利要求4所述的消息队列容器,其特征在于,
所述至少一个参数包括:主题名称数量上限、队列消息数量上限、队列溢出处理值;
所述消息队列容器中还包括第一处理单元、第二处理单元、第三处理单元、第四处理单元;
所述生产者接口,用于接收外部输入的新消息和所述新消息对应的第一主题名称;
所述第一处理单元,用于判断所述消息队列容器中是否存在所述第一主题名称,若是,触发所述第二处理单元,否则,触发所述第四处理单元;
所述第二处理单元,用于判断所述第一主题名称对应的第一消息链表中的消息数量是否小于所述队列消息数量上限,若是,将所述新消息增加至所述第一消息链表的队尾,否则,触发所述第三处理单元;
所述第三处理单元,用于在确定出所述队列溢出处理值为remove Oldest时,将所述第一消息链表中的队首消息移除,并将所述新消息增加至所述第一消息链表的队尾;在确定出所述队列溢出处理值为remove Latest时,放弃所述新消息;在确定出所述队列溢出处理值为wait时,以及进一步监测到所述第一消息链表中的队首消息被移除时,将所述新消息增加至所述第一消息链表的队尾;
所述第四处理单元,用于判断所述消息队列容器中存在的主题名称数量是否小于所述主题名称数量上限,若是,创建所述第一主题名称及其对应的消息链表,并将所述新消息增加至该消息链表的队尾,否则,向所述生产者接口返回预设的错误代码。
6.根据权利要求5所述的消息队列容器,其特征在于,
所述第四处理单元,具体用于基于所述队列消息数量上限,创建所述第一主题名称对应的消息链表,以使该消息链表的容量与所述队列消息数量上限相一致。
7.根据权利要求4至6中任一所述的消息队列容器,其特征在于,
所述消息队列容器中还包括:第五处理单元;
所述消息队列容器中包括有至少一个主题名称及每一个主题名称对应的消息链表,且所述至少一个主题名称中包括第二主题名称;
所述消费者接口,用于接收外部输入的所述第二主题名称;
所述第五处理单元,用于将所述第二主题名称对应的消息链表的队首消息移出,并将移出的所述队首消息推送至所述消费者接口。
CN201710639365.2A 2017-07-31 2017-07-31 一种消息队列容器创建方法、装置及消息队列容器 Active CN107391279B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710639365.2A CN107391279B (zh) 2017-07-31 2017-07-31 一种消息队列容器创建方法、装置及消息队列容器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710639365.2A CN107391279B (zh) 2017-07-31 2017-07-31 一种消息队列容器创建方法、装置及消息队列容器

Publications (2)

Publication Number Publication Date
CN107391279A CN107391279A (zh) 2017-11-24
CN107391279B true CN107391279B (zh) 2020-08-25

Family

ID=60341370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710639365.2A Active CN107391279B (zh) 2017-07-31 2017-07-31 一种消息队列容器创建方法、装置及消息队列容器

Country Status (1)

Country Link
CN (1) CN107391279B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278218B (zh) * 2018-03-14 2022-02-15 吉旗(成都)科技有限公司 一种基于容器的数据接收及解析方法
CN109766236A (zh) * 2018-12-15 2019-05-17 中国平安人寿保险股份有限公司 Kafka消息队列数监控方法、装置、电子设备及存储介质
CN109815082B (zh) * 2018-12-15 2023-04-11 中国平安人寿保险股份有限公司 Kafka主题监控方法、装置、电子设备及存储介质
CN110134494B (zh) * 2019-05-17 2022-03-25 四川长虹电器股份有限公司 一种基于Docker容器的容器自动化管理方法
CN110868322B (zh) * 2019-11-15 2023-04-07 北京京东尚科信息技术有限公司 分布式消息服务的网络管理方法、系统、设备及存储介质
CN110928696B (zh) * 2020-02-13 2020-10-09 北京一流科技有限公司 用户级线程控制系统及其方法
CN112148504A (zh) * 2020-09-15 2020-12-29 海尔优家智能科技(北京)有限公司 目标消息的处理方法及装置、存储介质及电子装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549108A (zh) * 2003-05-07 2004-11-24 中兴通讯股份有限公司 一种实现通信过程零拷贝消息队列的方法
CN102591658A (zh) * 2011-12-28 2012-07-18 奇智软件(北京)有限公司 一种消息处理方法及装置
CN103761141A (zh) * 2013-12-13 2014-04-30 北京奇虎科技有限公司 一种实现消息队列的方法及装置
CN105306497A (zh) * 2014-06-05 2016-02-03 北京畅游天下网络技术有限公司 应用程序中用户界面ui与模型层数据交互的方法和装置
US20160117242A1 (en) * 2014-10-28 2016-04-28 International Business Machines Corporation Optimization of non-volatile memory in message queuing
CN106201676A (zh) * 2016-06-28 2016-12-07 浪潮软件集团有限公司 一种任务分配方法及装置
CN106453136A (zh) * 2016-09-05 2017-02-22 深圳前海微众银行股份有限公司 建立消息队列的方法和装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549108A (zh) * 2003-05-07 2004-11-24 中兴通讯股份有限公司 一种实现通信过程零拷贝消息队列的方法
CN102591658A (zh) * 2011-12-28 2012-07-18 奇智软件(北京)有限公司 一种消息处理方法及装置
CN103761141A (zh) * 2013-12-13 2014-04-30 北京奇虎科技有限公司 一种实现消息队列的方法及装置
CN105306497A (zh) * 2014-06-05 2016-02-03 北京畅游天下网络技术有限公司 应用程序中用户界面ui与模型层数据交互的方法和装置
US20160117242A1 (en) * 2014-10-28 2016-04-28 International Business Machines Corporation Optimization of non-volatile memory in message queuing
CN106201676A (zh) * 2016-06-28 2016-12-07 浪潮软件集团有限公司 一种任务分配方法及装置
CN106453136A (zh) * 2016-09-05 2017-02-22 深圳前海微众银行股份有限公司 建立消息队列的方法和装置

Also Published As

Publication number Publication date
CN107391279A (zh) 2017-11-24

Similar Documents

Publication Publication Date Title
CN107391279B (zh) 一种消息队列容器创建方法、装置及消息队列容器
CN109582466B (zh) 一种定时任务执行方法、分布式服务器集群及电子设备
CN110245008B (zh) 定时任务处理方法、系统和设备
US8763012B2 (en) Scalable, parallel processing of messages while enforcing custom sequencing criteria
CN108549583B (zh) 大数据处理方法、装置、服务器及可读存储介质
US8402466B2 (en) Practical contention-free distributed weighted fair-share scheduler
US20170185452A1 (en) Apparatus and method for data processing
JPH03126158A (ja) スケジユーリング方法及び装置
US8984530B2 (en) Queued message dispatch
US9098359B2 (en) Durable execution of long running applications
US8918795B2 (en) Handling and reporting of object state transitions on a multiprocess architecture
CN107908471B (zh) 一种任务并行处理方法和处理系统
US11093279B2 (en) Resources provisioning based on a set of discrete configurations
US20120224482A1 (en) Credit feedback system for parallel data flow control
CN109614241A (zh) 基于Yarn队列实现多集群多租户资源隔离的方法及系统
CN113886069A (zh) 一种资源分配方法、装置、电子设备及存储介质
WO2023284171A1 (zh) 一种系统重启后的资源分配方法、系统及相关组件
EP4163798A1 (en) Method and apparatus for managing model file in inference application
CN113407343A (zh) 一种基于资源分配的业务处理方法、装置及设备
CN109684051A (zh) 一种混合式大数据任务异步提交的方法和系统
CN113791876A (zh) 用于处理任务的系统、方法和装置
CN116302457A (zh) 一种云原生工作流引擎实现方法、系统、介质及电子设备
CN108021448B (zh) 一种内核空间的优化方法及装置
US10768902B2 (en) Actor model programming
US9201688B2 (en) Configuration of asynchronous message processing in dataflow networks

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
TA01 Transfer of patent application right

Effective date of registration: 20200527

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Tidal Cloud Information Technology Co.,Ltd.

Address before: 250100 Ji'nan science and technology zone, Shandong high tide Road, No. 1036 wave of science and Technology Park, building S06

Applicant before: SHANDONG INSPUR CLOUD SERVICE INFORMATION TECHNOLOGY Co.,Ltd.

TA01 Transfer of patent application right
CB02 Change of applicant information

Address after: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant after: Inspur cloud Information Technology Co., Ltd

Address before: 250100 No. 1036 Tidal Road, Jinan High-tech Zone, Shandong Province, S01 Building, Tidal Science Park

Applicant before: Tidal Cloud Information Technology Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant