欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

QPID与AMQP简介

程序员文章站 2022-07-13 17:00:48
...

AMQP简介

 

AMQP(消息队列协议,Advanced Message Queuing Protocol)是一种消息协议 ,等同于JMS,但是JMS只是java平台的方案,AMQP是一个跨语言的协议。

AMQP 不分语言平台,最初来自JPMorgon,因为业务需要而滋生,很快从金融界推广到整个计算机界流行起来。

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

 

Publisher --->Exchange ---> MessageQueue --->Consumer

---------------------------------------------------------------------------

整个过程是异步的.Publisher,Consumer相互不知道对方的存在,

Exchange负责交换/路由,依靠Routing Key,每个消息者有一个Routing Key

每个Binding将自已感兴趣的RoutingKey告诉Exchange,以便Exchange将相关的

消息转发给相应的Queue.

 

几个概念

Producer,Routing Key,Exchange,Binding,Queue,Consumer.

---------------------------------------------------------------------------

Producer: 消息的创建者,消息的发送者

Routing Key:唯一用来映射消息该进入哪个队列的标识

Exchange:负责消息的路由,交换

Binding:定义Queue和Exchange的映射关系

Queue:消息队列

Consumer:消息的使用者

 

Exchange类型

-------------------

Fan-Out:类似于广播方式,不管RoutingKey

Direct:根据RoutingKey,进行关联投寄 

Topic:类似于Direct,但是支持多个Key关联,以组的方式投寄。

key以.来定义界限。类似于usea.news,usea.weather.这两个消息是一组的。

 

-----------------------------------------------------------------------------------------

 

QPID

QPID是AMQP的一个实现,提供C++,JAVA版本的broker,支持多种语言客户端。

 

基本功能外提供以下特性:

采用 Corosync(?)来保证集群环境下的Fault-tolerant(?) 特性

支持XML的Exchange,消息为XML时,彩用Xquery过滤

支持plugin提供安全认证,可对producer/consumer提供身份认证

qpidd --port --no-data-dir --auth

port:端口

--no-data-dir:不指定数据目录

--auth:不启用安全身份认证

 

启动后自动创建一些Exchange,amp.topic,amp.direct,amp.fanout

tools:

Qpid-config:维护Queue,Exchange,内部配置 

Qpid-route:配置broker Federation(联盟?集群?)

Qpid-tool:监控

 

 

参考:

关于AMQP更多信息可参考: http://www.openamq.org/doc:amqp-background

关于QPID的更多和使用可参考:http://qpid.apache.org/

相关标签: amqp qpid