`
mars914
  • 浏览: 432769 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

QPID与AMQP简介

阅读更多

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/

分享到:
评论

相关推荐

    qpid-cpp-0.6.tar.gz_AMQP_Open Net_qpid_qpid-cpp_消息队列

    Qpid/C++ 是AMQP协议的一个 C++ 的实现。Apache Qpid (Open Source AMQP Messaging) 是一个跨平台的企业通讯解决方案,实现了高级消息队列协议。提供了 Java、C++ 两种服务端版本以及 Java、C++、.NET、Python和Ruby...

    qpid-cpp-server

    标题中的"qpid-cpp-server"指的是Apache Qpid的C++服务器端实现,这是一个开源的消息传递系统,基于AMQP(Advanced Message Queuing Protocol)协议。它允许应用程序在分布式环境中进行可靠的数据交换,支持多种编程...

    qpid:Apache Qpid的镜像

    Qpid Broker-J [ ] [ ] Qpid CPP [ ] [ ] Qpid Dispatch [ ] [ ] Qpid JMS [ ] [ ] Qpid JMS AMQP 0-x [ ] [ ] Qpid Proton [ ] [ ] Qpid Proton-J [ ] [ ] Qpid Python [ ] [ ] Qpid Interop测试[ ] [ ] Qpid网站

    amqp1.0协议翻译

    由于其标准化和强大的功能,许多开源和商业消息队列产品都支持AMQP v1.0,如RabbitMQ、Apache Qpid、ActiveMQ等。 然而,需要注意的是,虽然AMQP v1.0提供了许可证,允许用户自由使用和实施规范,但用户需遵守条款...

    消息中间件 Apache Qpid 分析

    Apache Qpid 是一款基于 AMQP(Advanced Message Queuing Protocol)协议的开源消息中间件,由 Apache Foundation 开发并维护。消息中间件的主要作用是提供可靠的、异步的、跨平台的通信机制,允许应用程序之间通过...

    利用qpid cluster实现Qpid高可用配置.docx

    Qpid是Apache项目中的一个分布式消息传递系统,它实现了AMQP(Advanced Message Queuing Protocol)标准,用于在分布式环境中提供可靠的消息传递。Qpid集群(qpid cluster)是Qpid的一种高可用性(HA)配置,通过...

    qpid查看所有队列包括消息的信息.docx

    Qpid 是一个开源的消息传递系统,它遵循 Advanced Message Queuing Protocol (AMQP) 标准。在 Qpid 中,队列是存储和转发消息的核心组件。以下是一些关于使用 Qpid 查看和管理队列及消息的重要知识点: 1. **查看...

    amqp0-10_AMQP_Called_

    开发者可以使用各种编程语言的 AMQP 客户端库来与 AMQP 服务器(如 RabbitMQ 或 Apache Qpid)进行交互。 综上所述,"amqp0-10_AMQP_Called_" 可能是一个基于 AMQP 0-10 协议的工具或库,配合提供的 DTD、PDF 文...

    qpid jar包

    4. `geronimo-jms_1.1_spec-1.1.1.jar`:这是对JMS(Java Message Service)1.1规范的实现,Qpid使用它来与JMS兼容。 5. `qpid-proton-j.jar`:这个文件包含了Apache Qpid Proton库,它是Qpid的一个子项目,提供了...

    前端开源库-amqp

    在前端开发中,AMQP 库允许开发者与后端的AMQP兼容消息队列进行交互,如RabbitMQ、Apache Qpid等。 **节点的AMQP驱动程序** Node.js 是一个基于Chrome V8引擎的JavaScript运行环境,用于构建服务器端和网络应用。...

    Qpid学习文档

    - **AMQP支持**:遵循AMQP标准,确保与其他AMQP兼容系统的互操作性。 - **高效率**:优化的性能设计,处理大量并发消息交换。 - **可靠性和安全性**:通过消息确认和加密机制保证消息的完整性和安全性。 4. **...

    org.jflux.impl.transport.qpid-0.1.4.zip

    通过Qpid,Spring-Remoting-AMQP可以实现与不同系统间的无缝通信。 在Spring-Remoting-AMQP的实现中,主要涉及到以下几个关键概念: 1. **Spring Remoting**: Spring Remoting是Spring框架的一部分,它提供了一种...

    node-sbus-qpid:用于 node-sbus 模块的适配器,以将 node-qpid(基于 Apache Qpid Proton)模块用于所有与 AMQP 相关的调用

    由于node-qpid与node-amqp-1-0不同,它对 Apache 的 Qpid Proton 具有原生代码依赖性,因此它只能在 Linux/*nix 系统上运行(到目前为止),但很可能比“纯节点”更快版本(尚未验证)。细节node-sbus依赖五种简单...

    Qpid linux安装

    #### 三、下载与解压 Qpid 软件包 1. **访问 Apache 官网**:首先访问 Apache Qpid 官方网站 (http://qpid.apache.org/download.html),找到适合您的 Linux 发行版的 Qpid 版本并下载相应的软件包。 2. **解压...

    node-qpid:围绕 Apache Qpid 的 Node.js 本机包装器,特别是 AMQP 1.0 Proton C Messenger API

    节点qpid 围绕 Apache Qpid 的 Node.js 本机包装器,特别是 AMQP 1.0 Proton C API用法您可以使用它与 AMQP 1.0 代理交换消息: // Sendingvar Messenger = require ( 'qpid' ) . proton . Messenger ;var m = new ...

    Azure事件中心Java编程的那些事1

    这些jar包可以在Maven仓库中找到,包括`qpid-amqp-1-0-client`和`qpid-amqp-1-0-client-jms`等。 在进行Azure事件中心的Java编程时,选择哪个SDK主要取决于项目需求。原生SDK提供了基础的事件发送和接收功能,适合...

    qpid安装步骤

    Qpid是Apache基金会的一个项目,它提供了一个高性能、可靠的消息中间件服务,支持AMQP (Advanced Message Queuing Protocol) 协议。本篇文章将详细介绍如何在Linux环境下安装配置Qpid,并给出具体的启动命令。 ####...

    Laravel开发-laravel-amqp-queue .zip

    在本压缩包“Laravel开发-laravel-amqp-queue .zip”中,主要涉及的是Laravel框架与AMQP(Advanced Message Queuing Protocol)队列的整合应用。Laravel是PHP领域的一款流行且功能强大的Web应用框架,而AMQP则是一种...

    PyPI 官网下载 | qpid-python-0.26.tar.gz

    这个库允许Python开发者与Apache Qpid消息代理进行交互,实现了AMQP(Advanced Message Queuing Protocol)协议,这是一种标准的消息传递协议,用于在分布式系统中可靠地传输数据。 **Python 开发语言** Python是...

Global site tag (gtag.js) - Google Analytics