[发明专利]一种提高消息队列系统性能的装置及其方法无效
| 申请号: | 201210576843.7 | 申请日: | 2012-12-26 |
| 公开(公告)号: | CN103064731A | 公开(公告)日: | 2013-04-24 |
| 发明(设计)人: | 刘浩 | 申请(专利权)人: | 人民搜索网络股份公司 |
| 主分类号: | G06F9/46 | 分类号: | G06F9/46 |
| 代理公司: | 北京汇泽知识产权代理有限公司 11228 | 代理人: | 程殿军 |
| 地址: | 100020 北京市朝阳*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 提高 消息 队列 系统 性能 装置 及其 方法 | ||
技术领域
本发明涉及程序进程间通信机制及消息队列处理技术,尤其涉及一种提高消息队列系统性能的装置及其方法。
背景技术
消息队列(Message Queue)是一种应用程序间进行进程通信的方法。应用程序通过写和读取出入队列的针对应用程序的数据(消息)来通信,而无需专用连接。消息传递指的是程序之间通过在消息中发送数据进行通信,而不是通过远程过程调用实现通信。队列的使用除去了接收和发送应用程序需要同时执行的要求,实现程序间解耦的目的。
消息队列是一个典型的生产者、消费者模型,一端往消息队列中不断的写入消息,而另一端则可以读取或者订阅队列中的消息。其应用场景在于,web应用中,将一些无需即时返回而且耗时的操作提取出来,进行异步处理,节省服务器的请求响应时间,从而提高系统的吞吐量。
AMQP(Advanced Message Queuing Protocol)是一个异步消息传递所使用的应用层协议规范。AMQP的目标是为通用消息队列架构提供通用的构建工具,统一了消息模式,提供了发布/订阅、队列、事务以及流数据,提供基于内容的路由,易于拓展。该协议使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能。
RabbitMQ则是一个在AMQP基础上实现的完整的、可复用的企业消息系统。它是用Erlang语言完成的,支持集群、消息持久化、错误恢复等特性。RabbitMQ内置的集群特性设计用以实现两个目标:一是允许在一个集群中一个节点宕机时,生产者进程和消费者进程能够继续保持运行;二是通过简单的增删节点即可实现集群能力的动态扩容和收缩。
但是RabbitMQ的集群特性在特定场景下,即使其队列中的消息为空,也会出现内存暴涨的问题。
例如,在下列场景下:
1)RabbitMQ使用集群模式,如3台服务器组成的集群;
2)多个生产者(由于生产者和消息队列上游处理能力相关,因此其数目不由消息队列控制);
3)生产者会向多个队列里发送消息,消息的到来不均匀,导致可能存在多个生产者同时向一个队列中持续发送消息的状况;
4)消息大小在100KB上下;
5)消费者的能力足够,使得消息队列集群中不会堆积消息。
此时,RabbitMQ的集群特性会导致RabbitMQ的单个实例内存暴涨。
发明内容
有鉴于此,本发明的主要目的在于提供一种提高消息队列系统性能的装置及其方法,利用中心元信息节点技术,解决RabbitMQ的集群特性会出现实例内存暴涨的缺陷,并提高消息队列RabbitMQ的性能,提高其处理能力。
为达到上述目的,本发明的技术方案是这样实现的:
一种提高消息队列系统性能的装置,主要包括:生产者模块Producer,Thrift Server中转层模块,消费者模块Consumer,中心节点数据库Database,自动化工具Tools以及HTTP服务器;其中:
所述生产者模块Producer,用于实现发送策略、连接管理功能;
所述Thrift Server中转层模块,用于实现连接管理、队列与所在主机对应关系查询与维护、统计功能、配额管理功能以及发布消息功能;
所述消费者模块Consumer,主要用于实现连接管理、队列与所在主机对应关系查询与维护、获取消息的功能;
所述中心节点数据库Database,用于实现统一的后端存储,使用Redis实现,作为中心节点维护系统的元信息;所述Thrift Server中转层模块和消费者模块Consumer均将从该中间节点数据库Database中查找队列与所在主机的对应关系、更新统计和查询配额;
所述自动化工具Tools,为一系列自动化工具,包括项目创建、队列创建、队列监控、配额管理工具;
所述HTTP服务器,用于提供对读取和发送消息队列消息的RESTful访问接口。
其中:所述Database作为中间节点存储元信息,包含队列与所在主机对应关系信息、统计信息、配额信息。
所述Thrift Server中转层,包括:Connection Manager类,Background Checker类,Version Manager类,DB Manager类,Host Manager类,Subscriber Manager类,Stat Manager类和Quota Manager类;其中:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于人民搜索网络股份公司,未经人民搜索网络股份公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210576843.7/2.html,转载请声明来源钻瓜专利网。





