消息队列的选型

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

(1)

目录

1消息队列的概述 (2)

1.1消息的概念 (2)

1.2消息的队列的概念 (2)

1.3消息队列的概念 (3)

2AMQP (4)

2.1AMQP (4)

2.2AMQP历史 (4)

2.3AMQP的架构 (5)

2.4AMQP的概念 (5)

3常用消息队列选型 (7)

3.1RabbitMQ (7)

3.2ZeroMQ (8)

3.3Qpid (8)

3.4MetaQ (9)

3.5ActiveMQ (9)

3.6OpenMQ (11)

3.7MemcacheQ (12)

4队列参数比较 (14)

1消息队列的概述1.1消息的概念

1.消息的概念:消息是由通信双方所需要传递的信息,它可以是各式

各样的媒体,如文本、声音、图像等消息,最终的理解方式为,消

息传递的双方事先商定这样做的好处是:一是相当于对数据进行了

简单的加密,二采用自己定义的格式可以节省通信的传递量。

2.消息可以含有发送和接收者的标识,这样只有指定的用户才能看到

只传递给他的信息和返回是否操作成功的回执。

3.消息也可以含有时间戳,以便接收方对某些与时间相关的应用进行

处理消息,还可以含有到期时间,它表明如果在指定时间内消息还

未到达则此消息作废,这主要用于与时间性关联较为紧密的应用。

1.2消息的队列的概念

1.存储的概念:消息队列是发送和接收消息的公用存储空间,它可以

存在于内存中或者是物理文件中。

2.消息的发送方式:消息可以以两种方式发送,即快递方式和可恢复

模式,它们的区别在于,快递方式为了消息的快速传递把消息放置

于内存中,而不放于物理磁盘上,以获取较高的处理能力;可恢复

模式在传送过程的每一步骤中,都把消息写入物理磁盘中,以得到

较好的故障恢复能力。

3.消息队列的存贮所在:可以放置在发送方、接收方所在的机器上,

也可以单独放置在另外一台机器上。正是由于消息队列在放置方式

上的灵活性,形成了消息传送机制的可靠性。当保存消息队列的机

器发生故障而重新启动以后,以可恢复模式发送的消息,可以恢复

到故障发生之前的状态,而以快递方式发送的消息则丢失了。另一

方面,采用消息传递机制,发送方不要再担心接收方是否启动、是

否发生故障等非必要因素,只要消息成功发送出去就可以认为处理

完成。而实际上对方可能甚至未曾开机,或者实际完成时可能已经

是第二天了。

4.采用消息队列技术带来的好处是:由于是异步通信,无论是发送方

还是接收方都不用等待对方返回成功消息就可以执行余下的代码,

因而大大提高了事物处理的能力;在信息传送过程中,信息发送机

制具有一定功能的故障恢复能力;消息传递机制使得消息通信的双

方具有不同的物理平台成为可能。

1.3消息队列的概念

1.消息队列是在多个不同的应用之间实现相互通信的一种异步传输模

式,相互通信的应用可以分布于同一台机器上,也可以分布于相连

的网络空间中的任一位置。

2.实现原理:是消息的发送者把自己想要发送的信息放入一个容器中

(称为Message),然后把它保存至一个系统公用空间的消息队列中;

本地或者是异地的消息接收程序再从该队列中取出发给它的消息进

行处理。

2AMQP 2.1AMQP

AMQP是Advanced Message Queuing Protocol,即高级消息队列协议。

和前面罗列的技术不同,AMQP是一个标准化的消息中间件协议。她的

理想是让不同语言,不同系统的应用互相通信,并提供一个简单统一的

模型和编程接口。这样,人们就可以采用各种语言和平台来实现自己的

应用,当需要和其他系统通信时,只要承认AMQP协议即可。2.2AMQP历史

AMQP来自JPMorgon,最初只是这个财大气粗的投行内部使用的消息中间件(注意:它变成了一个支持这个协议的标准实现)。发起人John

O'Hara很有气魄,他说“从1996年开始到2003我一直在等这样一个

标准,但始终没有等到,我已经等不下去了”,并且“投行对这类标准的

需求最迫切,而银行又从来不缺乏技术专家”,所以他自己开发了一个。

我想一个人如果想成就什么事,就需要这样的英雄气概吧。因为他的努

力,AMQP从金融界迅速推广到整个计算机行业,参与者包括了很多IT

巨头。虽然今天AMQP依旧是一个草案,但值得我们拭目以待,AMQP目

前还是一个草案,最新版本是0.10

2.3AMQP的架构

图2-1AMQP

架构

2.4AMQP的概念

表2-1AMQP概念表

概念角色描述

Producer 消息生产

一个给exchange发送消息的程序,发送方式大致是:

它首先创建一个空消息,然后填上内容、路由KEY,

最后发送给exchange

Routing Key 正向过滤

key、消息

特征

一个字符串,exchange用之来决定应该该消息投递

给哪个queue。(开始时queue已向exchange绑定

它所关心消息的routingKey)

Exchange 交换器接收来自producers的消息,并根据该消息的

routingKey和绑定的routingKey,将该消息投递到

正确的queues

Binding 绑定操作前期将queue所想要的消息特征告诉exchange。

Exchange以后收到消息,就按照这个规则来投递。

Queue MQClient

MQserver

的直接面

在MQ server(实现为broker方式)里面的queue,持

有MQ clients想要的消息。

相关文档
最新文档