CN103902370A - 一种消息队列的设计与实现方法 - Google Patents
一种消息队列的设计与实现方法 Download PDFInfo
- 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
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,若出队后,子消息队列没有消息,则删除该子消息队列;若所有的子消息队列都没有足够的配额出队消息,则按照优先级从高到低,出队消息,同样根据该消息的配额,计算其他所有子消息队列应该得到的配额。
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101996099A (zh) * | 2010-11-17 | 2011-03-30 | 山东中创软件工程股份有限公司 | 一种消息处理方法及系统 |
CN102546423A (zh) * | 2012-01-20 | 2012-07-04 | 福建星网锐捷网络有限公司 | 队列调度方法、装置及网络设备 |
-
2014
- 2014-03-14 CN CN201410092389.7A patent/CN103902370B/zh active Active
Patent Citations (2)
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 |