- 浏览: 1011180 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (826)
- 硬件 (8)
- 软件 (24)
- 软件工程 (34)
- JAVA (229)
- C/C++/C# (77)
- JavaScript (8)
- PHP (1)
- Ruby (3)
- MySQL (14)
- 数据库 (19)
- 心情记事 (12)
- 团队管理 (19)
- Hadoop (1)
- spring (22)
- mybatis(ibatis) (7)
- tomcat (16)
- velocity (0)
- 系统架构 (6)
- JMX (8)
- proxool (1)
- 开发工具 (16)
- python (10)
- JVM (27)
- servlet (5)
- JMS (26)
- ant (2)
- 设计模式 (5)
- 智力题 (2)
- 面试题收集 (1)
- 孙子兵法 (16)
- 测试 (1)
- 数据结构 (7)
- 算法 (22)
- Android (11)
- 汽车驾驶 (1)
- lucene (1)
- memcache (12)
- 技术架构 (7)
- OTP-Erlang (7)
- memcached (17)
- redis (20)
- 浏览器插件 (3)
- sqlite (3)
- Heritrix (9)
- Java线程 (1)
- scala (0)
- Mina (6)
- 汇编 (2)
- Netty (15)
- libevent (0)
- CentOS (12)
- mongod (5)
- mac os (0)
最新评论
-
kingasdfg:
你这里面存在一个错误添加多个任务 应该是这样的 /** * ...
Quartz的任务的临时启动和暂停和恢复【转】 -
kyzeng:
纠正一个错误,long型对应的符号是J,不是L。
Jni中C++和Java的参数传递 -
zhaohaolin:
抱歉,兄弟,只是留下作记录,方便学习,如果觉得资料不好,可以到 ...
netty的个人使用心得【转】 -
cccoooccooco:
谢谢!自己一直以为虚机得使用网线才可以与主机连接呢。。
主机网卡无网线连接与虚拟机通信 -
yuqilin001:
要转别人的东西,请转清楚点嘛,少了这么多类,误人子弟
netty的个人使用心得【转】
The Advanced Message Queuing Protocol (AMQP) 是一个标准开放的应用层的消息中间件( Message Oriented Middleware )协议。 AMQP 定义了通过网络发送的字节流的数据格式。因此兼容性非常好,任何实现 AMQP 协议的程序都可以和与 AMQP 协议兼容的其他程序交互,可以很容易做到跨语言,跨平台。
Development
AMQP 由 JPMorgan Chase & Co 于 2006 年中旬发布。 JPMorgan Chase & Co 和 iMatix 定义协议规范,并由包括 Red Hat, Cisco Systems, TWIST, IONA, and iMatix 参与开发。截至 2009 年 11 月,工作组的成员包括 Bank of America, Barclays, Cisco Systems, Credit Suisse, Deutsche B ö rse Systems, Envoy Technologies, Inc., Goldman Sachs, Progress Software, iMatix Corporation, JPMorgan Chase Bank Inc. N.A, Microsoft Corporation, Novell, Rabbit Technologies Ltd., Red Hat, Inc., Solace Systems, Tervela Inc., TWIST Process Innovations ltd, WS02 and 29West Inc.
值得一提的是, AMQP 的设计目标是建立开放工业标准协议。虽然 AMQP 的起源于金融服务行业,但是它的用途并不局限于金融行业内。
The AMQP model
分布式模型
AMQP 定义了一系列实体 ( Entity ) , 从连接的角度来看 , 他们是
Message Broker : 连接 Client 的服务器,他使用 AMQP 协议与 Client 交互,并且可以作为集群运行, 但是这些细节并没有写入 AMQP 的规范。
User: 用户可以连接到 Message Broker
Connection: 物理连接 , 绑定到用户
Channel : Channel 是有状态的逻辑连接。 Client 连接上执行并行操作应维护不同的 Channel 。
所有发送和接收的实体( Entity )都在 Channel 中定义。任何试图声明一个已具名的有不同属性的实体( Entity ) , 都将导致错误。如果需要改变实体( Entity )的属性, 必须先将该实体删除,之后重新定义。实体( Entity )名字必须唯一, Broker 根据实体( Entity )名字来判断 Client 的操作权限。
Exchanges
Exchange 从 Client 接收消息,并把它们分发到 Message Queue
Exchange 的属性
passive: Exchange 不必被声明,但是如果不存在,将会产生错误
durable :如果 Broker 重起, Exchange 是否还有效
auto-delete :只要发现它没有被绑定到 Queue , Exchange 将被删除。
Queues
Queue 用于存放 Message ,直到有客户端可以处理这个 Message 。
Queue 的属性
alternate-Exchange :当信息被拒绝接收,将转发到这个 Exchange ,并从 Queue 中删除。
passive: Queue 不必被声明, 但是如果不存在, 将会产生错误
durable :如果 Broker 重起, Queue 是否还有效
exclusive :只能有一个 Client 一个具体的 Queue 。
auto-delete :如果 Queue 未被订阅, 则自动删除 Queue
Messages
Message 一律不具名,并被发送到 Exchange 。它们由一个 Message header 和 Message content 的构成。 body 是一个包含若干可选的属性的不可见的 Message header :
routing-key :这个属性取决于 Exchange 的类型
immediate :如果 Message 不能立即被处理, 则将其视为 unroutable
delivery-mode :表明该 Message 是否需要持久保存。
priority : Message 的优先级
expiration: Message 多久之后失效, 之后将作为 unroutable 处理
Bindings
Binding 是一个 Queue 和 Exchange 的逻辑绑定,并指定一个 Message 如何从 Exchange 发送到 Queue 。
Unconditional :请求 Exchange 的所有的 Message 。
Conditional on a fixed string :请求 Exchange 上具有指定 routing key 的所有 Message
Conditional on a pattern match : 请求 Exchange 上具有指定 routing key , 并且符合指定 pattern 的所有 Message
Conditional on multiple fixed strings :请求 Exchange 上属性符合要求的所有 Message
Conditional on multiple fixed strings :请求 Exchange 上模式符合要求的所有 Message
Conditional on algorithmic comparison :请求 Exchange 上符合算法要求的所有 Message
Conditional on content inspection :请求 Exchange 上内容符合要求的所有 Message
Implementations
These are the known publicly available AMQP implementations:
OpenAMQ, original open-source implementation of AMQP, written in C by iMatix. Runs on Linux, AIX, Solaris, Windows, OpenVMS. Includes Broker, APIs in C/C++ and Java JMS, remote admin shell, scripting, federation, failover, and AMQP-over-HTTP via the RestMS protocol.
Apache Qpid, a project in the Apache Foundation with Client APIs that support C++, Ruby, Java, JMS, Python and .NET.
Red Hat Enterprise MRG implements the latest version of AMQP 0-10 providing rich set of features like full management, federation, Active-Active clustering using Qpid as upstream, adds a web console and many enterprise features and "C++, Ruby, Java, JMS, Python .NET" Clients.
RabbitMQ, an independent open-source implementation. The server is written in Erlang, and multiple Clients including Python, Ruby, .NET, Java, JMS, C, PHP, Actionscript, XMPP, STOMP, and AJAX are provided. RabbitMQ is distributed with Ubuntu, FreeBSD ports.
AMQP Infrastructure yum installable AMQP 0-10 (maintained in the latest 3 versions of Fedora) which includes the Broker, management tools, agents and Clients.
ØMQ, a high-performance messaging platform that is able to treat AMQP-compliant Brokers as nodes in distributed messaging network.
Zyre, a Broker that implements RestMS and AMQP to provide RESTful HTTP access to AMQP networks.
reference:
http://en.wikipedia.org/wiki/Advanced_Message_Queuing_Protocol
发表评论
-
Advanced Message Queuing Protocol ( 3 ) 逻辑模型
2011-05-07 22:04 1167Sessions 建立在不同容器中的两个节点的链接必 ... -
Advanced Message Queuing Protocol ( 2 ) 逻辑模型
2011-05-07 22:04 966Nodes and Links 一个AMQP的网络包 ... -
Apache Qpid (1) -- build
2011-05-07 22:02 1938http://qpid.apache.org/index.h ... -
ActiveMQ技术预研报告【转】
2011-04-22 14:44 1907ActiveMQ技术预研报告 研究部朱懋柱 1.文 ... -
ActiveMQ与MSMQ的异同【转】
2011-04-22 14:14 1910.NET下发送和接收ActiveMQ A:下载Act ... -
ActiveMQ在C#中的应用
2011-04-21 16:18 1195ActiveMQ 是个好东东,不必多说。ActiveM ... -
ActiveMQ实战之 Queue点对点消息【转】
2011-04-18 23:15 1205对于此类消息,其实就是指使用JMS中的发P2P(点对点)消息模 ... -
ActiveMQ实战之 Topic发布订阅消息【转】
2011-04-18 23:14 1187对于此类消息,其实就是指使用JMS中的发布订阅消息模型的消息, ... -
ActiveMQ实战(4):JMS的安全性【转】
2011-04-18 22:52 1226对于JMS服务的安全控制,ActiveMQ提供两种方式:简单授 ... -
ActiveMQ实战(3):Web控制台的安全性【转】
2011-04-18 22:52 1334安装好ActiveMQ后,其默认没有任何安全控制,任何人都可以 ... -
ActiveMQ实战(2):测试其是否正常工作【转】
2011-04-18 22:51 1201既然ActiveMQ安装好了并启动成功,接下来我们就编写一个测 ... -
ActiveMQ实战(1):安装与运行【转】
2011-04-18 22:45 1779ActiveMQ的项目主页:http://activemq.a ... -
[转] JMS开源比较
2011-03-30 23:46 1181Java开源JMS消息中间件 ... -
activemq5.2发送和接收BlobMessage简单实例
2011-03-29 23:45 1163package com.work.activemq ... -
ActiveMQ学习笔记----ActiveMQ和JBossMQ性能对比测试代码
2011-03-29 23:44 1221本文描述了对ActiveMQ进行性能测试的代码。性能测试用 ... -
ActiveMQ 实例
2011-03-29 23:21 10372009-06-24 ProducerTool.java ... -
activemq持久化配置,设置为主从模式(带复制的主从模式,应用mysql数据库)
2011-03-29 09:12 1818activemq持久化配置,设置为主从模式(带复制的主从模 ... -
ActiveMQ持久化消息的三种方式
2011-03-29 09:11 13621:前言 这一段给公司开发消息总线有机会研究A ... -
什么是JMS(Java消息服务)
2011-03-28 19:28 897在不同系统之间交换信息的一大障碍是如何在精确交换和格式化数据方 ... -
消息中间件和JMS
2011-03-28 19:26 790当前,CORBA、DCOM、RMI等R ...
相关推荐
AMQP协议是Advanced Message Queuing Protocol的简称,翻译成中文即为高级消息队列协议。它是一种开放标准的、应用层、异步消息传递协议,用于在不同系统之间进行可靠的消息交换。AMQP定义了客户端如何与消息代理...
RabbitMQ是另一个流行的消息队列实现,它是一个开源的AMQP(Advanced Message Queuing Protocol)服务器,广泛用于各种语言和平台。在.NET 7中,我们可以利用MassTransit或者RabbitMQ.Client库与RabbitMQ进行交互。...
AMQP:Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全性要求很严格。
RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。 Erlang与RabbitMQ,安装路径都应...
目前正在使用 MINA 的软件包括有:Apache Directory Project、AsyncWeb、AMQP(Advanced Message Queuing Protocol)、RED5 Server(Macromedia Flash Media RTMP)、ObjectRADIUS、Openfire 等等。
AMQP全称:Advanced Message Queuing Protocol AMQP翻译:高级消息队列协议 RabbitMQ安装与配置 安装RabbitMQ需先安装erlang和socat 安装依赖环境 yum install build-essential openssl openssl-devel unixODBC ...
它实现了AMQP(Advanced Message Queuing Protocol)协议,并提供了可靠的消息传输、灵活的消息路由、消息队列、发布/订阅等功能。 通过下载并安装rabbitmq-server-3.7.28,你可以部署并运行这个具体版本的RabbitMQ...
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP...
AMQP,即Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。基于此协议的客户端与消息中间件可传递消息,并不受客户端/...
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP...
OASIS Advanced Message Queuing Protocol (AMQP) Version 1.0 英文版 更多内容或者网页版本请见http://docs.oasis-open.org/amqp/core/v1.0/
RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,因此也是继承了这些优点。 这是RabbitMQ 2.7.1版的Windows平台安装程序...
This document defines a networking protocol, the Advanced Message Queuing Protocol (AMQP), which enables conforming client applications to communicate with conforming messaging middleware servers. We ...
AMQP协议,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。...
RabbitMQ是一套开源(MPL)的消息队列服务软件,是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成。
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。 AMQP...
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
AMQP(advanced message queuing protocol)是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同产品,不同开发语言等条件的限制。RabbitMQ(支持更多语言,...
RabbitMQ 是由 LShift 提供的一个 Advanced Message Queuing Protocol (AMQP) 的开源实现,由以高性能、健壮以及可伸缩性出名的 Erlang 写成,RabbitMQ 是一个功能丰富的, 多协议消息传递和流代理。它支持:AMQP 0-...