CN103902370A - 一种消息队列的设计与实现方法 - Google Patents

一种消息队列的设计与实现方法 Download PDF

Info

Publication number
CN103902370A
CN103902370A CN201410092389.7A CN201410092389A CN103902370A CN 103902370 A CN103902370 A CN 103902370A CN 201410092389 A CN201410092389 A CN 201410092389A CN 103902370 A CN103902370 A CN 103902370A
Authority
CN
China
Prior art keywords
message
sub
quota
message queue
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.)
Granted
Application number
CN201410092389.7A
Other languages
English (en)
Other versions
CN103902370B (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 Electronic Information Industry Co Ltd
Original Assignee
Inspur Electronic Information Industry 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 Electronic Information Industry Co Ltd filed Critical Inspur Electronic Information Industry Co Ltd
Priority to CN201410092389.7A priority Critical patent/CN103902370B/zh
Publication of CN103902370A publication Critical patent/CN103902370A/zh
Application granted granted Critical
Publication of CN103902370B publication Critical patent/CN103902370B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明提供一种消息队列的设计与实现方法,属于分布式集群存储系统领域领域,该方法主要是在集群文件系统节点的消息队列处理消息中,根据该消息的优先级和其使用的配额,计算其他优先级消息队列对应的配额,然后将计算后的配额反馈到其他优先级队列中,从而实现不同优先级消息队列的调度。

Description

一种消息队列的设计与实现方法
 
技术领域   
    本发明涉及分布式集群存储系统领域,具体地说是一种消息队列的设计与实现方法。
背景技术
 集群文件系统中,所有节点间通过消息进行通信,消息队列的调度策略对整个集群的运行有至关重要的作用。若消息队列的调度策略设计不合理,那么高优先级消息可能调度不及时,然后得不到迅速处理,会导致集群文件系统认为该节点状态异常,然后集群文件系统会踢出该节点,影响整个集群文件系统的运行效率。
发明内容
    本发明是一种消息队列的设计与实现方法,适用于分布式集群存储系统,能够有效的优化集群文件系统中不同优先级消息的调度策略,提高不同优先级消息队列的调度效率,提升集群文件系统的消息处理速度。
一种消息队列的设计和实现方法,通过对消息队列中不同优先级消息的调度机制进行优化,通过在消息队列的设计中引入配额反馈机制,从而实现了消息队列调度的自我管理和自我调度。
该方法主要是在集群文件系统节点的消息队列处理消息中,根据该消息的优先级和其使用的配额,计算其他优先级消息队列对应的配额,然后将计算后的配额反馈到其他优先级队列中,从而实现不同优先级消息队列的调度。
该方法包含如下部分:
1.     配额。用于表示可以进行消息调度的大小,一般是消息的长度。
2.     子消息队列。该数据结构用于保存消息队列中同一优先级的消息,同时保存该子消息队列剩余的配额。当消息队列的剩余配额不足以处理下一个消息时,该消息队列将让出调度。
3.     消息队列。该数据结构用于保存所有的子消息队列,同时保存所有子消息队列的优先级之和。消息队列定义了消息的入队方法和出队方法。
a)     入队方法。当有一个消息进入队列时,首先消息队列会查看有没有该消息优先级的子消息队列。若没有,创建该子消息队列,将该优先级加入原有的优先级之和中。然后将消息放到子消息队列的尾部。
b)    出队方法。当处理一个消息时,需要出队一个消息。首先按照优先级从低到高,遍历所有的子消息队列,查看子消息队列是否有足够的配额出队消息。若有,按照遍历顺序,出队消息,并在该子消息队列的配额中减掉出队消息的配额,然后根据该消息的配额,计算其他所有子消息队列应该得到的配额,公式为(子消息队列优先级 * 该消息使用配额 / 所有子队列消息优先级之和)+ 1,若出队后,子消息队列没有消息,则删除该子消息队列;若所有的子消息队列都没有足够的配额出队消息,则按照优先级从高到低,出队消息,同样根据该消息的配额,计算其他所有子消息队列应该得到的配额。
 本发明的有益效果是:
 能够有效的优化集群文件系统中不同优先级消息的调度策略,提高不同优先级消息队列的调度效率,提升集群文件系统的消息处理速度。
 该方法通过对消息队列中的消息增加配额反馈机制,实现消息队列调度的自我管理,提高了消息队列调度的灵活性,优化了消息队列的调度策略,保证了集群文件系统的运行效率。
附图说明
附图1为本发明的消息入队示意图;
附图2为本发明的消息出队示意图。
具体实施方式
一、消息入队
当有消息进入消息队列时,该消息需要带有对应的优先级和使用的配额(一般使用消息的长度)。根据消息的优先级,首先查找对应优先级的子消息队列,若没有对应优先级的子消息队列,则创建子消息队列,并计算所有子消息队列之和。然后将消息放入对应优先级的子消息队列。
二、消息出队
当需要调度一个消息出队时,首先遍历所有的子消息队列
(1)  若有子消息队列有足够的配额可以用于出队消息,则直接出队消息,并消耗该子消息队列的配额,并根据该消息的配额计算其他子消息对列应该补偿的配额,计算公式为(子消息队列优先级 * 该消息使用配额 / 所有子队列消息优先级之和)+ 1。
消息出队之后,若该子消息队列已经为空,则删除该子消息队列; 
(2)  若所有子消息队列都没有足够的配额用于出队消息,按照优先级从高到低,出队消息。出队消息之后,同样需要根据该消息的配额计算其他子消息对列应该补偿的配额。
    根据以上对消息的出队和入队方式的描述,完成对一种消息队列的设计与实现。

Claims (3)

1.一种消息队列的设计与实现方法,其特征在于通过对消息队列中不同优先级消息的调度策略进行优化,通过在消息队列的设计中引入配额反馈机制,从而实现了消息队列调度的灵活调度和自我管理。
2.根据权利要求1所述的方法,其特征在于该方法主要是在集群文件系统节点的消息队列处理消息中,根据该消息的优先级和其使用的配额,计算其他优先级消息队列对应的配额,然后将计算后的配额反馈到其他优先级队列中,从而实现不同优先级消息队列的调度。
3.根据权利要求1或2所述的方法,其特征在于该方法包含如下部分:
    1)、配额,用于表示可以进行消息调度的大小,一般是消息的长度;
    2)、子消息队列,该数据结构用于保存消息队列中同一优先级的消息,同时保存该子消息队列剩余的配额;当消息队列的剩余配额不足以处理下一个消息时,该消息队列将让出调度;
   3)、消息队列,该数据结构用于保存所有的子消息队列,同时保存所有子消息队列的优先级之和;消息队列定义了消息的入队方法和出队方法;
a)入队方法,当有一个消息进入队列时,首先消息队列会查看有没有该消息优先级的子消息队列;若没有,创建该子消息队列,将该优先级加入原有的优先级之和中,然后将消息放到子消息队列的尾部;
b)出队方法,当处理一个消息时,需要出队一个消息;首先按照优先级从低到高,遍历所有的子消息队列,查看子消息队列是否有足够的配额出队消息;若有,按照遍历顺序,出队消息,并在该子消息队列的配额中减掉出队消息的配额,然后根据该消息的配额,计算其他所有子消息队列应该得到的配额,公式为(子消息队列优先级 * 该消息使用配额 / 所有子队列消息优先级之和)+ 1,若出队后,子消息队列没有消息,则删除该子消息队列;若所有的子消息队列都没有足够的配额出队消息,则按照优先级从高到低,出队消息,同样根据该消息的配额,计算其他所有子消息队列应该得到的配额。
CN201410092389.7A 2014-03-14 2014-03-14 一种消息队列的设计与实现方法 Active CN103902370B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410092389.7A CN103902370B (zh) 2014-03-14 2014-03-14 一种消息队列的设计与实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410092389.7A CN103902370B (zh) 2014-03-14 2014-03-14 一种消息队列的设计与实现方法

Publications (2)

Publication Number Publication Date
CN103902370A true CN103902370A (zh) 2014-07-02
CN103902370B CN103902370B (zh) 2017-12-29

Family

ID=50993708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410092389.7A Active CN103902370B (zh) 2014-03-14 2014-03-14 一种消息队列的设计与实现方法

Country Status (1)

Country Link
CN (1) CN103902370B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996099A (zh) * 2010-11-17 2011-03-30 山东中创软件工程股份有限公司 一种消息处理方法及系统
CN102546423A (zh) * 2012-01-20 2012-07-04 福建星网锐捷网络有限公司 队列调度方法、装置及网络设备

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101996099A (zh) * 2010-11-17 2011-03-30 山东中创软件工程股份有限公司 一种消息处理方法及系统
CN102546423A (zh) * 2012-01-20 2012-07-04 福建星网锐捷网络有限公司 队列调度方法、装置及网络设备

Also Published As

Publication number Publication date
CN103902370B (zh) 2017-12-29

Similar Documents

Publication Publication Date Title
CN101694631B (zh) 实时作业调度系统及方法
CN103248583B (zh) 一种基于有限深度的先进先出报文队列管理方法及装置
US20140089619A1 (en) Object replication framework for a distributed computing environment
WO2008071748A3 (en) Transaction processing system
CN104598563A (zh) 高并发数据存储方法及装置
IN2012DE00360A (zh)
CN107908471B (zh) 一种任务并行处理方法和处理系统
CN105160570A (zh) 一种可水平扩展的并发在线交易处理方法
GB2516852A (en) Consuming ordered streams of messages in a message oriented middleware
US20090199208A1 (en) Queued message dispatch
EP2995028B1 (en) Tuple recovery
CN110968430A (zh) 基于消息队列的处理方法和消息队列
CN102567120A (zh) 一种节点调度优先级确定方法及装置
US20160179627A1 (en) Method and system for checkpointing a global state of a distributed system
CN103902370A (zh) 一种消息队列的设计与实现方法
US9652310B1 (en) Method and apparatus for using consistent-hashing to ensure proper sequencing of message processing in a scale-out environment
WO2021147877A1 (zh) 用于静态分布式计算架构的数据交换系统及其方法
CN105094990A (zh) 一种高效的实现大规模数据交换的系统及其方法
CN106933681A (zh) 一种多对象阻塞方法及其系统
CN110502337A (zh) 针对Hadoop MapReduce中混洗阶段的优化系统及方法
CN102929562A (zh) 基于识别标识的可扩展重排序方法
CN110032455A (zh) 通过运行时间合作进行高效通信重叠
CN105608160A (zh) 一种分布式大数据分析方法
CN103984544A (zh) 一种避免任务同时执行的方法
CN104301134A (zh) 软件设计中基于海量定时器的管理方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant