一种扩展消息中间件吞吐量的方法及系统的制作方法

文档序号:9330497阅读:419来源:国知局
一种扩展消息中间件吞吐量的方法及系统的制作方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其涉及一种扩展消息中间件吞吐量的方法及系统。
【背景技术】
[0002]随着云计算、分布式技术的发展,消息中间件的使用也越来越多。消息中间件(message oriented middleware)是指支持与保障分布式应用程序之间收发消息的中间件,常见的产品有RabbitMQ、ActiveMQ等。分布式应用程序之间的通信接口由消息中间件提供,消息发送方和接收方之间的连接完全是松耦合的,通信是非阻塞的。消息中间件已广泛应用于各类分布式应用系统中。现有技术对消息中间件的使用,一条队列传输同种业务类型的消息,多种业务类型的消息需要通过多条队列进行传输,主要有以下两个常见问题:单条队列传输消息的速度受计算机硬件、网络等条件限制,难以满足业务的速度要求;单位时间内,消息中间件的单条队列处理消息的总量有限,随着消息总量增加,传输速度呈现非线性下降,甚至达到零值,不适合在业务处理量大的系统中使用。但是现有的专利仍然无法解决以上两个常见的问题,如:
[0003]在2011年11月23日公开的公开号为102255794A的中国发明,涉及一种远程消息收发吞吐量优化和等待时间缩短用系统和方法,该系统用于运行于远程节点上的进程间的进程间通信中的消息收发,包括:可通信地彼此耦连的至少两个主节点;可通信地与至少一个主节点耦连的至少一个订阅方/发布方节点;适于存储进程间消息的存储器;可由多个进程并行访问的共享内存中的至少一个存储缓冲区队列;插入进程间消息的写进程和异步地发送消息的远程发送进程,和同步地接收来自/到达队列的消息的远程接收进程;将至少一个进程间消息插入到远程接收节点存储的队列中;至少一个读进程,它使消息从远程接收节点上的队列中出列;适于指向队列中的空闲存储缓冲区的空闲指向元件;和适于指向包含进程间消息的存储缓冲区的数据指向元件。
[0004]在2013年12月18日公开的公开号为103457875A的中国发明,公开了车联网中基于多优先级的消息队列控制方法,该方法在车辆产生消息时,针对每个消息划分成不同优先级;再据消息的优选级,将消息放入不同的控制队列;在消息传输时,根据控制队列的发送优先等级发送对应队列中的消息。该发明提供的消息队列控制方法具有可靠的通信服务、根据不同业务类型Qos需求提供不同时延、吞吐量、可靠性等性能保障。
[0005]在2014年3月12日公开的公开号为103631665A的中国发明,提供了一种基于消息队列的线程间通信的方法和系统,采用所述消息队列执行多线程进队push以及单线程出队pop的操作,其中,所述多线程进队push的操作包括:判断所述消息队列是否已满;若否,则分别计算η个线程进队push的偏移量;所述η为大于或等于I的正整数;依据所述η个线程进队push的偏移量,分别计算所述η个线程进队push的实际位置Pos ;所述η个线程分别在其进队push的实际位置Pos执行进队push操作。该发明保证了多线程访问操作不碰撞,解决了线程间通信时阻塞的问题,减少了资源消耗,充分利用了系统资源,提高了处理速度,从而提高了服务器吞吐量。

【发明内容】

[0006]本发明要解决的技术问题之一,在于提供一种扩展消息中间件吞吐量的方法,一般用于接收消息的客户端都有订阅消息中间件中的多条队列的能力,但大多数情况是所订阅的多条队列不具有业务相关性;本发明能订阅多条业务相关的队列,使多条消息能够传输同种业务消息;可以把有业务先后顺序要求的消息路由到同一条队列,使消息按照先进先出的顺序在队列中传输,消息的业务先后顺序也不会被打乱,保证了部分消息之间的顺序性。
[0007]本发明要解决的问题之一,是这样实现的:
[0008]—种扩展消息中间件吞吐量的方法,包括如下步骤:
[0009]步骤1、根据当前发送的具有同种业务类型的消息体总吞吐量及消息中间件中单条队列的吞吐量决定队列设置复数条队列,并将该复数条队列进行编号,且每个消息体均包括复数个不同名称的业务字段;
[0010]步骤2、初次配置映射关系时,选取任意一个消息体中的任意一个业务字段作为该消息体的目标字段,建立目标字段与队列编号之间的映射关系F(X) = Y,其中:X为该目标字段的值,Y为队列编号;
[0011]步骤3、根据上述目标字段的名称从每个消息体中获取业务字段,并将该业务字段作为每个消息体的目标字段,分别将每个目标字段的值X代入所述映射关系F (X) = Y,运算出每个消息体对应的队列编号Y,并将每个消息体分别发送到对应的队列中。
[0012]进一步地,所述映射关系是通过一致性哈希算法或取模运算建立的。
[0013]本发明要解决的技术问题之二,在于提供一种扩展消息中间件吞吐量的系统,一般用于接收消息的客户端都有订阅消息中间件中的多条队列的能力,但大多数情况是所订阅的多条队列不具有业务相关性;本发明能订阅多条业务相关的队列,使多条消息能够传输同种业务消息;可以把有业务先后顺序要求的消息路由到同一条队列,使消息按照先进先出的顺序在队列中传输,消息的业务先后顺序也不会被打乱,保证了部分消息之间的顺序性。
[0014]本发明要解决的问题之二,是这样实现的:
[0015]—种扩展消息中间件吞吐量的系统,包括:
[0016]队列编号模块,用于根据当前发送的具有同种业务类型的消息体总吞吐量及消息中间件中单条队列的吞吐量设置复数条队列,并将该复数条队列进行编号,且每个消息体均包括复数个不同名称的业务字段;
[0017]映射关系建立模块,用于初次配置映射关系时,选取任意一个消息体中的任意一个业务字段作为该消息体的目标字段,建立目标字段与队列编号之间的映射关系F(X)=Y,其中:x为该目标字段的值,Y为队列编号;
[0018]分队列路由模块,用于根据上述目标字段的名称从每个消息体中获取业务字段,并将该业务字段作为每个消息体的目标字段,分别将每个目标字段的值X代入所述映射关系F(X) = Y,运算出每个消息体对应的队列编号Y,并将每个消息体分别发送到对应的队列中。
[0019]进一步地,所述映射关系是通过一致性哈希算法或取模运算来建立的。
[0020]本发明具有如下优点:本发明可以使得多条队列传输同种业务消息,在保证单条消息的业务顺序性的同时增加了吞吐量;多条队列对于客户端而言是透明的;消息就像在单条队列中传输一样,其消息传输的速度和容量都得到大幅提升。
【附图说明】
[0021]下面参照附图结合实施例对本发明作进一步的说明。
[0022]图1为本发明一种扩展消息中间件吞吐量的方法执行流程图。
【具体实施方式】
[0023]如图1所示,本发明的一种扩展消息中间件吞吐量的方法,包括如下步骤:
[0024]步骤1、设定业务类型为手机充值业务,该业务类型的消息体总吞吐量为12000条,单条队列的吞吐量为6000条,根据当前发送的具有同种业务类型的消息体总吞吐量及消息中间件中单条队列的吞吐量设置两条队列,并将队列进行编号:队列I和队列2,且每个消息体均包括复数个不同名称的业务字段,针对业务类型为手机充值业务的消息体,每个消息体中均包括手机号和充值面额两个业务字段;
[0025]步骤2、初次配置映射关系时,选取任意一个消息体中的任意一个业务字段(如手机号)作为目标字段,建立目标字段(如手机号)与队列编号之间的映射关系F(X) =Y,其中:Χ为该目标字段的值,Y为队列编号;所述映射关系是通过取模运算来建立的,其映射关系为:如果手机号的数值最后一位是偶数,则将该消息体发到队列I中;如果手机号
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1