CN109104446B - 一种消息保序方法、网络节点及存储介质 - Google Patents
一种消息保序方法、网络节点及存储介质 Download PDFInfo
- Publication number
- CN109104446B CN109104446B CN201710468861.6A CN201710468861A CN109104446B CN 109104446 B CN109104446 B CN 109104446B CN 201710468861 A CN201710468861 A CN 201710468861A CN 109104446 B CN109104446 B CN 109104446B
- Authority
- CN
- China
- Prior art keywords
- message
- consumer
- cache partition
- producer
- sequence
- 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
- 238000000034 method Methods 0.000 title claims abstract description 41
- 238000005192 partition Methods 0.000 claims abstract description 139
- 238000013507 mapping Methods 0.000 claims abstract description 111
- 238000004590 computer program Methods 0.000 claims description 3
- 230000005055 memory storage Effects 0.000 claims 1
- 238000012545 processing Methods 0.000 abstract description 18
- 238000004891 communication Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 10
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
-
- 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/14—Session management
- H04L67/141—Setup of application sessions
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/566—Grouping or aggregating service requests, e.g. for unified processing
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Information Transfer Between Computers (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种消息保序方法、网络节点及存储介质,属于通讯技术领域。本发明实施例中方法包括:接收至少一个消息生产者生成的消息序列;按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将消息序列保存到对应的消息缓存分区,该映射关系中消息消费者数量小于等于消息缓存分区数量;从消息缓存分区将消息序列发送给对应的消息消费者进行消费。本发明实施例中通过消息缓存分区建立消息生产者和消息消费者之间的映射,实现消息有序、高效的处理,免了消息处理时的二次消费和竞争。
Description
技术领域
本发明涉及通讯技术领域,尤其涉及一种消息保序方法、网络节点及存储介质。
背景技术
消息处理的模型是典型的生产者消费者模型,这是一个简单的模型,但随着消息处理规模的增加,消息处理模型演化为多消息生产者和多消息消费者,并引入了消息缓存,模型变得复杂。同时,当消息处理系统中出现对消息保序的要求(如监控系统)时,由于多消息消费者的存在,处理变得更加复杂。多消息生产者和多消息消费者场景下的消息保序,要求消息生产者A生产的消息序列abcde,按照同样的序列被消息消费者消费,否则系统就会出错。
解决的措施通常是在消息生产者和消息消费者之间有一个消息分发者,它负责把消息生产者生产的消息,按保序的要求分发给各消费者。还有一种做法是在多个消息消费者之间使用分布式锁,消息消费者B和C在消费A生产的消息前,要先获取锁,只有获取到的消息消费者才能够消费。消费完之后释放这个锁,下一次消费前再次获取。这就保证了消息生产者的消息在多个消息消费者之间是串行按序消费的。
无论上述哪种方式,都降低了系统中消息处理的效率。消息分发者要进行消息的二次消费,容易形成单点故障和瓶颈;分布式锁的方式存在大量的竞争,在大型分布式系统中这些开销都是不可忍受的。
发明内容
有鉴于此,本发明的目的在于提供一种消息保序方法、网络节点及存储介质,以解决目前消息处理系统中消息处理效率低、开销大的问题。
本发明解决上述技术问题所采用的技术方案如下:
第一方面,本发明提供一种消息保序方法,该方法包括:
接收至少一个消息生产者生成的消息序列;
按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到对应的消息缓存分区,所述映射关系中消息消费者数量小于等于消息缓存分区数量;
从所述消息缓存分区将所述消息序列发送给对应的消息消费者进行消费。
第二方面,本发明提供一种网络节点,所述网络节点包括处理器、存储器及收发器,所述存储器、所述收发器和所述处理器通过总线连接;
所述收发器用于接收至少一个消息生产者生成的消息序列;
所述处理器用于按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到所述存储器中对应的消息缓存分区,所述映射关系中消息消费者数量小于等于消息缓存分区数量;
所述收发器用于从所述消息缓存分区将所述消息序列发送给对应的消息消费者进行消费。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述第一方面中任一所述的方法。
本发明实施例中通过接收至少一个消息生产者生成的消息序列;按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将消息序列保存到对应的消息缓存分区;从消息缓存分区将消息序列发送给对应的消息消费者进行消费。本发明实施例中通过消息缓存分区建立消息生产者和消息消费者之间的映射,映射一旦建立就不需要第三方的介入,消息生产者和消息消费者借助这个映射关系可以实现消息有序、高效的处理,且由于映射关系中消息消费者数量小于等于消息缓存分区数量,保证了每个消息消费者都至少对应一个分区,避免了消息处理时的二次消费和竞争,提高了消息处理的效率。
附图说明
图1为本发明实施例中提供的消息保序方法的系统架构示意图;
图2为本发明实施例一提供的消息保序方法一个优选实施例步骤示意图;
图3为本发明实施例一提供的消息保序方法另一个优选实施例新增步骤示意图;
图4为本发明实施例一提供的消息保序方法的一个具体实施例示意图;
图5为本发明实施例一提供的消息保序方法的另一个具体实施例示意图;
图6为本发明实施例一提供的消息保序方法另一个优选实施例新增步骤示意图;
图7为本发明实施例一提供的消息保序方法另一个优选实施例新增步骤示意图;
图8为本发明实施例二提供的网络节点的一个实施例示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
如图1所示,为本发明实施例系统架构示意图,应用于多消息生产者、多消息消费者的消息系统,包括至少一个消息生产者(如图1中消息生产者1、消息生产者2...消息生产者n)、至少一个消息消费者(如图1中的消息消费者1、消息消费者2...消息消费者n),k个消息缓存分区以及映射关系管理者,其中, k、n为大于1的正整数,消息消费者、消息生产者、映射关系管理者均为软件模块或者软件客户端,消息生产者用于生成消息序列,消息消费者用于消费消息生产者生成的消息序列,本发明实施例中还引入映射关系管理者,消息生产者和消息消费者要向映射关系管理者注册自己的信息。由映射关系管理者根据缓存分区数量,以及消息生产者和消息消费者的信息来建立消息生产者、缓存分区、消息消费者之间的关系。每个消息生产者、消息消费者均可以对应一个网络节点,映射关系管理者对应一个网络节点(如映射关系管理者节点),同时,消息生产者、消息消费者及映射关系管理者也可以至少两个对应一个网络节点,例如,消息生产者和映射关系管理者都在一个网络节点中,或者映射关系管理者和消息消费者在一个网络节点中,或者消息生产者、消息消费者及映射关系管理者均在一个网络节点中,上述描述的网络节点可以是工作站服务器、终端设备、网络设备等。
下面详细介绍本发明实施例。
实施例一
请参阅图2,为本发明实施例一提供的消息保序方法的一个实施例示意图,该方法应用于网络节点中,该网络节点可以是上述包括映射关系管理者的网络节点(可以是独立的映射关系管理者节点,或者集成映射关系管理者以及消息生产者、消息消费者中至少一个的网络节点),该方法包括:
S21、通过映射关系管理者接收至少一个消息生产者生成的消息序列;
S22、通过映射关系管理者按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将消息序列保存到对应的消息缓存分区;
其中,所述映射关系中消息消费者数量小于等于消息缓存分区数量,这样每个消息消费者都能保证对应到一个消息缓存分区,能够按照消息序列的顺序消费消息缓存分区中的消息。
S23、通过映射关系管理者从所述消息缓存分区将所述消息序列发送给对应的消息消费者进行消费。
本发明实施例中通过映射关系管理者接收至少一个消息生产者生成的消息序列;按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将消息序列保存到对应的消息缓存分区;从消息缓存分区将消息序列发送给对应的消息消费者进行消费。本发明实施例中通过消息缓存分区建立消息生产者和消息消费者之间的映射,映射一旦建立就不需要第三方的介入,消息生产者和消息消费者借助这个映射关系可以实现消息有序、高效的处理,且由于映射关系中消息消费者数量小于等于消息缓存分区数量,保证了每个消息消费者都至少对应一个分区,避免了消息处理时的二次消费和竞争,提高了消息处理的效率。
进一步的,请参阅图3,在本发明实施例一的一些优选实施例中,在按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到对应的消息缓存分区的步骤之前,本实施例一中方法还可以包括:
S24、通过映射关系管理者接收消息生产者和消息消费者的注册请求;
S25、通过映射关系管理者划分消息缓存分区;
S26、通过映射关系管理者建立消息生产者、消息消费者及消息缓存分区的映射关系。
通过预先建立已注册的消息生产者、消息消费者及消息缓存分区的映射关系,可以构建好快速处理的机制,消息生产者和消息消费者借助这个映射关系可以实现消息有序、高效的处理。
下面结合具体部分应用场景对上述实施例一进行详细描述,具体如下:
(1)多个消息生产者通过同一个消息缓存分区与消息消费者建立映射关系。
假设消息系统中包括消息生产者1和消息生产者2,以及消息消费者1,如图4,本发明实施例中消息保序方法一具体实施例包括:
S41、通过映射关系管理者接收消息生产者1和消息生产者2以及消息消费者1的注册信息;
即消息生产者1、消息生产者2、消息消费者1向映射关系管理者注册。
S42、通过映射关系管理者从消息缓存获取消息缓存分区数量;
S43、通过映射关系管理者建立消息生产者、消息消费者和消息缓存分区的映射关系;
由于只有一个消息消费者1,要保证映射关系中消息消费者数量小于等于消息缓存分区数量,此处可以只分配一个消息缓存分区与消息生产者、消息消费者建立映射关系。由于只分配一个消息缓存分区(消息缓存分区1),因此两个消息生产者(消息生产者1和消息生产者2)和一个消息消费者1都映射到该消息缓存分区1。
S44、通过消息缓存分区1接收消息生产者1发送的消息序列abc,以及消息生产者2发送的消息序列xyz。
消息缓存分区中的消息序列假设是axbyzc(此处为举例,也可能是axybzc 或abxyzc等顺序)。
S45、通过映射关系管理者将消息缓存分区1的消息序列axbyzc发送给消息消费者1进行消费。
消息消费者1按照消息序列axbyzc顺序进行消费,满足两个消息生产者各自生产的消息序列abc、xyz的保序要求。
(2)单个消息生产者通过多个消息缓存分区与不同消息消费者建立映射关系。
假设消息系统中包括消息生产者1和消息消费者1、消息消费者2,由于消息消费者有两个,由于消费者数量不小于消息缓存分区数量,假设消息缓存分区目前有两个:消息缓存分区1、消息缓存分区2。如图5,本发明实施例中消息保序方法另一具体实施例包括:
S51、通过映射关系管理者接收消息生产者1、消息消费者1以及消息消费者2的注册信息;
即消息生产者1和消息消费者1、消息消费者2向映射关系管理者注册;
S52、通过映射关系管理者建立消息生产者1、消息消费者1和消息缓存分区1的映射关系,建立消息生产者1、消息消费者2和消息缓存分区2的映射关系;
S53、通过消息缓存分区1接收消息生产者1发送的消息序列abc,通过消息缓存分区2接收消息生产者1发送的消息序列xyz;
S54、通过映射关系管理者将消息缓存分区1中的消息序列abc按顺序发送给消息消费者1进行消费,通过映射关系管理者将消息缓存分区2中消息序列 xyz按顺序发送给消息消费者2进行消费。
消息消费者1按照消息生产者1生成的消息序列abc顺序进行消费,消息消费者2按照消息生产者1生成的消息序列xyz顺序进行消费,满足两个消息生产者各自生产的消息序列abc、xyz的保序要求。
请参阅图6,在本发明实施例一的一些优选实施例中,在消息系统中还可以新增消息生产者,新增的消息生产者需要在映射关系管理者注册,此时,所述方法还可以包括:
S27、通过映射关系管理者接收第一消息生产者的注册请求,该第一消息生产者对应的消息消费者为已注册的第一消息消费者;
S28、通过映射关系管理者确定当前消息缓存分区中吞吐量最小的第一消息缓存分区;
S29、通过映射关系管理者建立第一消息生产者、第一消息缓存分区及第一消息消费者的映射关系。
具体的,例如,消息生产者1和消息消费者1、消息消费者2向映射关系管理者注册;消息生产者1和消息消费者1通过消息缓存分区1建立映射关系,消息生产者1和消息消费者2通过消息缓存分区2建立映射关系;在消息系统中新增消息生产者2之后,消息生产者2向映射关系管理者注册;映射关系管理者根据消息缓存分区消息吞吐量情况(映射关系管理者可以获取消息缓存分区中的消息吞吐量),将消息生产者2映射到当前吞吐量最低的消息缓存分区2;
消息生产者2和消息消费者2通过消息缓存分区2建立映射;消息生产者2 发送消息序列ijk,消息消费者2按照此顺序消费。
进一步的,本发明实施例一中对于新增消息生产者生成的消息序列,可以分配到对应的消息消费者进行消费。此时,所述方法还可以包括:
通过映射关系管理者接收第一消息生产者生成的第一消息序列;
通过映射关系管理者将第一消息序列保存到所述第一消息缓存分区;
通过映射关系管理者将第一消息序列从第一消息缓存分区发送给第一消息消费者进行消费。
请参阅图7,在本发明实施例一的一些优选实施例中,在消息系统中还可以新增消息消费者,新增的消息消费者需要在映射关系管理者注册,此时,所述方法还包括:
S210、通过映射关系管理者接收第二消息消费者的注册请求,该第二消息消费者用于消费已注册的第二消息生产者生成的消息序列;
S211、通过映射关系管理者新增第二消息缓存分区;
S212、通过映射关系管理者建立第二消息生产者、第二消息缓存分区及第二消息消费者的映射关系。
具体的,消息生产者1和消息生产者2以及消息消费者1向映射关系管理者注册;映射关系管理者建立消息生产者、消息消费者和消息缓存分区1的映射关系。由于当前只有一个消息缓存分区(消息缓存分区1),因此两个消息生产者和一个消息消费者都映射到该消息缓存分区1;在消息系统中新增消息消费者2之后,消息消费者2向映射关系管理者注册;由于当前消息消费者数量大于消息缓存分区数量,映射关系管理者新增消息缓存分区2;映射关系管理者将消息生产者2的映射从消息缓存分区1调整到消息缓存分区2;消息生产者2与消息消费者2通过消息缓存分区2建立映射关系;息生产者2发送消息序列xyz,消息消费者2按照该顺序消费。
进一步的,本发明实施例一中对于已注册的消息生产者生成的消息序列,可以分配给新增的消息消费者进行消费。此时,所述方法还包括:
通过映射关系管理者接收所述第二消息消费者生成的第二消息序列;
通过映射关系管理者将所述第二消息序列保存到所述第二消息缓存分区;
通过映射关系管理者将所述第二消息序列从所述第二消息缓存分区发送给所述第二消息消费者进行消费。
实施例二
请参阅图8,为本发明实施例二中网络节点的一个实施例示意图,该网络节点可以是上述包括映射关系管理者的网络节点(可以是独立的映射关系管理者节点,或者集成映射关系管理者以及消息生产者、消息消费者中至少一个的网络节点),该网络节点包括处理器801、存储器802及收发器803,所述存储器 802、所述收发器803和所述处理器801通过总线连接;
所述收发器803用于接收至少一个消息生产者生成的消息序列;
所述处理器801用于按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到所述存储器802中对应的消息缓存分区,所述映射关系中消息消费者数量小于等于消息缓存分区数量;
所述收发器803用于从所述消息缓存分区将所述消息序列发送给对应的消息消费者进行消费。
进一步的,所述收发器803还用于在按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到对应的消息缓存分区的步骤之前,接收消息生产者和消息消费者的注册请求;
所述处理器801还用于在所述存储器802存储空间内划分消息缓存分区;
所述处理器801还用于建立消息生产者、消息消费者及消息缓存分区的映射关系。
进一步的,所述收发器803还用于接收新的第一消息生产者的注册请求,所述第一消息生产者对应的消息消费者为已注册的第一消息消费者;
所述处理器801还用于确定当前消息缓存分区中吞吐量最小的第一消息缓存分区;建立所述第一消息生产者、所述第一消息缓存分区及所述第一消息消费者的映射关系。
进一步的,所述收发器803还用于接收所述第一消息消费者生成的第一消息序列;
所述处理器801还用于将所述第一消息序列保存到所述第一消息缓存分区;
所述收发器803 还用于将所述第一消息序列从所述第一消息缓存分区发送给所述第一消息消费者进行消费。
进一步的,所述收发器803还用于接收新的第二消息消费者的注册请求,所述第二消息消费者用于消费已注册的第二消息生产者生成的消息序列;
所述处理器801还用于在所述存储器的存储空间新增第二消息缓存分区;
所述处理器801还用于建立所述第二消息生产者、所述第二消息缓存分区及所述第二消息消费者的映射关系。
进一步的,所述收发器803还用于接收所述第二消息消费者生成的第二消息序列;
所述处理器801还用于将所述第二消息序列保存到所述第二消息缓存分区;
所述收发器803还用于将所述第二消息序列从所述第二消息缓存分区发送给所述第二消息消费者进行消费。
实施例三
本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如上述消息保序方法实施例中任一所述的方法实施例。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘) 中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (10)
1.一种消息保序方法,其特征在于,所述方法包括:
接收至少一个已注册消息生产者生成的消息序列;
按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到对应的消息缓存分区,所述映射关系中已注册消息消费者数量小于等于消息缓存分区数量;将所述消息序列保存到对应的消息缓存分区包括:所述消息序列的部分或全部保存于映射有消息消费者的对应消息缓存分区;
从所述消息缓存分区将所述消息序列发送给对应的消息消费者进行消费,以供对应的消息消费者按照所述消息序列的顺序消费所述消息缓存分区中的消息;
一个所述消息缓存分区仅与一个所述消息消费者建立映射关系。
2.根据权利要求1所述的方法,其特征在于,在按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到对应的消息缓存分区的步骤之前,所述方法还包括:
接收消息生产者和消息消费者的注册请求;
划分消息缓存分区;
建立消息生产者、消息消费者及消息缓存分区的映射关系。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第一消息生产者的注册请求,所述第一消息生产者对应的消息消费者为已注册的第一消息消费者;
确定当前消息缓存分区中吞吐量最小的第一消息缓存分区;
建立所述第一消息生产者、所述第一消息缓存分区及所述第一消息消费者的映射关系。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
接收所述第一消息生产者生成的第一消息序列;
将所述第一消息序列保存到所述第一消息缓存分区;
将所述第一消息序列从所述第一消息缓存分区发送给所述第一消息消费者进行消费。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第二消息消费者的注册请求,所述第二消息消费者用于消费已注册的第二消息生产者生成的消息序列;
新增第二消息缓存分区;
建立所述第二消息生产者、所述第二消息缓存分区及所述第二消息消费者的映射关系。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
接收所述第二消息生产者生成的第二消息序列;
将所述第二消息序列保存到所述第二消息缓存分区;
将所述第二消息序列从所述第二消息缓存分区发送给所述第二消息消费者进行消费。
7.一种网络节点,其特征在于,所述网络节点包括处理器、存储器及收发器,所述存储器、所述收发器和所述处理器通过总线连接;
所述收发器用于接收至少一个消息生产者生成的消息序列;
所述处理器用于按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到所述存储器中对应的消息缓存分区,所述映射关系中消息消费者数量小于等于消息缓存分区数量;将所述消息序列保存到所述存储器中对应的消息缓存分区包括:所述消息序列的部分或全部保存于映射有消息消费者的对应消息缓存分区;
所述收发器用于从所述消息缓存分区将所述消息序列发送给对应的消息消费者进行消费,以供对应的消息消费者按照所述消息序列的顺序消费所述消息缓存分区中的消息;
一个所述消息缓存分区仅与一个所述消息消费者建立映射关系。
8.根据权利要求7所述的网络节点,其特征在于,
所述收发器还用于在按照预设的消息生产者、消息消费者及消息缓存分区的映射关系,将所述消息序列保存到对应的消息缓存分区的步骤之前,接收消息生产者和消息消费者的注册请求;
所述处理器还用于在所述存储器存储空间内划分消息缓存分区;
所述处理器还用于建立消息生产者、消息消费者及消息缓存分区的映射关系。
9.根据权利要求7所述的网络节点,其特征在于,
所述收发器还用于接收第一消息生产者的注册请求,所述第一消息生产者对应的消息消费者为已注册的第一消息消费者;
所述处理器还用于确定当前消息缓存分区中吞吐量最小的第一消息缓存分区;建立所述第一消息生产者、所述第一消息缓存分区及所述第一消息消费者的映射关系。
10.一种计算机可读存储介质,其特征在于,其上存储有计算机程序,该程序被处理器执行时实现如权利要求1至6中任一所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710468861.6A CN109104446B (zh) | 2017-06-20 | 2017-06-20 | 一种消息保序方法、网络节点及存储介质 |
PCT/CN2018/091783 WO2018233592A1 (zh) | 2017-06-20 | 2018-06-19 | 消息保序方法、网络节点及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710468861.6A CN109104446B (zh) | 2017-06-20 | 2017-06-20 | 一种消息保序方法、网络节点及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109104446A CN109104446A (zh) | 2018-12-28 |
CN109104446B true CN109104446B (zh) | 2022-04-15 |
Family
ID=64737452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710468861.6A Active CN109104446B (zh) | 2017-06-20 | 2017-06-20 | 一种消息保序方法、网络节点及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN109104446B (zh) |
WO (1) | WO2018233592A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114500546B (zh) * | 2022-01-25 | 2024-04-30 | 中国农业银行股份有限公司 | 基于负载均衡集群的通信消息发送方法、装置及设备 |
CN114448989B (zh) * | 2022-01-26 | 2024-04-05 | 北京百度网讯科技有限公司 | 调整消息分发的方法、装置、电子设备、存储介质及产品 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019866A (zh) * | 2012-10-24 | 2013-04-03 | 北京京东世纪贸易有限公司 | 基于消息队列的分布式方法和系统 |
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理系统及处理方法 |
CN105706086A (zh) * | 2013-11-11 | 2016-06-22 | 亚马逊科技公司 | 用于获取、存储和消费大规模数据流的管理服务 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7913048B2 (en) * | 2006-07-26 | 2011-03-22 | International Business Machines Corporation | Data subscribe-and-publish mechanisms and methods for producer-consumer pre-fetch communications |
US8607249B2 (en) * | 2011-09-22 | 2013-12-10 | Oracle International Corporation | System and method for efficient concurrent queue implementation |
CA2925074A1 (en) * | 2013-09-23 | 2015-03-26 | Visible World Inc. | Systems and methods for cache-based content delivery |
US9672038B2 (en) * | 2014-09-16 | 2017-06-06 | Oracle International Corporation | System and method for supporting a scalable concurrent queue in a distributed data grid |
CN105871966A (zh) * | 2015-09-22 | 2016-08-17 | 乐视网信息技术(北京)股份有限公司 | 消息分发的方法、装置及系统 |
CN105306552A (zh) * | 2015-09-30 | 2016-02-03 | 中国科学院计算技术研究所 | 一种基于消息队列的消费均衡方法及系统 |
US9998418B2 (en) * | 2015-11-11 | 2018-06-12 | International Business Machines Corporation | Intelligent message queue management |
CN105610926B (zh) * | 2015-12-22 | 2019-01-11 | 广州品唯软件有限公司 | 消息传递方法、系统和消息中间件系统 |
CN106487891B (zh) * | 2016-10-11 | 2019-05-21 | 北京集奥聚合科技有限公司 | 一种基于kafka的处理消息的方法 |
CN106534338B (zh) * | 2016-12-05 | 2019-05-21 | 东北大学 | 一种云机器人实现方法 |
-
2017
- 2017-06-20 CN CN201710468861.6A patent/CN109104446B/zh active Active
-
2018
- 2018-06-19 WO PCT/CN2018/091783 patent/WO2018233592A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103019866A (zh) * | 2012-10-24 | 2013-04-03 | 北京京东世纪贸易有限公司 | 基于消息队列的分布式方法和系统 |
CN105706086A (zh) * | 2013-11-11 | 2016-06-22 | 亚马逊科技公司 | 用于获取、存储和消费大规模数据流的管理服务 |
CN104754036A (zh) * | 2015-03-06 | 2015-07-01 | 合一信息技术(北京)有限公司 | 一种基于kafka的消息处理系统及处理方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2018233592A1 (zh) | 2018-12-27 |
CN109104446A (zh) | 2018-12-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110769038B (zh) | 服务器调度方法及装置、存储介质、电子设备 | |
CN111818136B (zh) | 数据处理方法、装置、电子设备及计算机可读介质 | |
CN111522641B (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN107623729B (zh) | 一种缓存方法、设备及缓存服务系统 | |
CN105991660B (zh) | 一种多云存储系统间资源共享的系统 | |
CN104796439A (zh) | 网页推送方法、客户端、服务器及系统 | |
CN110502572A (zh) | 一种数据同步的方法及服务器 | |
CN109104446B (zh) | 一种消息保序方法、网络节点及存储介质 | |
US11924070B2 (en) | Data processing method and device | |
CN103457748A (zh) | 数据传输方法、系统和设备 | |
CN105245367B (zh) | 一种序列号生成方法及电子设备 | |
US8978048B2 (en) | Information processing system, control method, and non-transitory computer readable medium storing program | |
CN112714146B (zh) | 一种资源调度方法、装置、设备及计算机可读存储介质 | |
CN106790354B (zh) | 一种防数据拥堵的通信方法及其装置 | |
CN112312465B (zh) | 随机接入报告的上报及接收方法、装置、终端及设备 | |
CN105025042B (zh) | 一种确定数据信息的方法及系统、代理服务器 | |
CN111416695B (zh) | 一种数据传输方法、终端和网络侧设备 | |
CN107682271B (zh) | 一种路由线路的生成方法及装置 | |
JP2007221522A (ja) | ポーリング装置及び端末装置及びポーリング方法及びプログラム | |
CN111309467B (zh) | 任务分发方法及装置、电子设备及存储介质 | |
CN112383491A (zh) | 广播时隙的确定方法、装置、设备及存储介质 | |
CN109039907B (zh) | 确定网络数据流量最优路径方法、装置、设备及存储介质 | |
US11399294B2 (en) | Increasing number of connected user equipments on radio access network apparatus | |
WO2019137204A1 (zh) | 控制资源集coreset的分配方法、用户终端和网络侧设备 | |
CN110865987A (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 |