当前位置:文档之家› rabbitmq+学习手册

rabbitmq+学习手册

AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。 AMQP在消息提供者和客户端的行为进行了强制规定,使得不同卖商之间真正实现了互操作能力。 JMS是早期消息中间件进行标准化的一个尝试,它仅仅是在API级进行了规范,离创建互操作能力还差很
远。 与JMS不同,AMQP是一个Wire级的协议,它描述了在网络上传输的数据的格式,以字节为流。因此任何
private static Connection connection; static { ConnectionParameters params = new ConnectionParameters(); ConnectionFactory factory = new ConnectionFactory(params); try { connection = factory.newConnection("localhost", AMQP.PROTOCOL.PORT); } catch (IOException e) { e.printStackTrace(); } } public void testReceive() { try { Channel channel = connection.createChannel(); System.out.println(channel.toString()); Assert.assertNotNull(channel); channel.exchangeDeclare("exchangeName", "direct"); channel.queueDeclare("queueName"); channel.queueBind("queueName", "exchangeName", "routingKey"); boolean noAck = false; GetResponse response = channel.basicGet("queueName", true); if (response == null) { System.out.println("No message retrieved."); } else { AMQP.BasicProperties props = response.getProps(); byte[] body = response.getBody(); System.out.println(new String(body)); } } catch (IOException e) { e.printStackTrace(); } } } 先执行下发送端,再执行下接收端,输出:hello world ok
Redhat、iMatix 等联合制定了 AMQP 的公开标准。 Introduction: RabbitMQ is a complete and highly reliable enterprise messaging system based on the emerging AMQP
standard. It is licensed under the open source Mozilla Public License and has a platform-neutral distribution, plus platform-specific packages and bundles for easy installation.
Web控制台,还有许多企业级特征,客户端支持C++、Ruby、Java、JMS、Python和.NET。 4)RabbitMQ 一 个独立的开源实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、
Java、JMS、C、PHP、 ActionScript、XMPP、STOMP等,支持AJAX。RabbitMQ发布在 Ubuntu、FreeBSD平台。 5)AMQP Infrastructure Linux下,包括Broker、管理工具、Agent和客户端。 6)?MQ 一个高性能的消息平台,在分布式消息网络可作为兼容AMQP的Broker节点,绑定了多种语言,包括
若下载的是rabbitmq-server-generic-unix-1.7.2.tar.gz,可以直接解压,像windows上一样启动,然后使用 即可
rabbitmq 学习-3-初试1
本例是一个简单的异步发送消息实例 1,发送端 @Test(groups = { "sunjun" }) public class RabbitmqTest {
Python、C、C++、Lisp、Ruby等。
7)Zyre
是一个Broker,实现了RestMS协议和AMQP协议,提供了RESTful HTTP访问网络AMQP的能力。
RabbitMQ 是一个由 Erlang 写成的 Advanced Message Queuing Protocol (AMQP) 实现,AMQP 的出现
private static Connection connection; static { ConnectionParameters params = new ConnectionParameters(); ConnectionFactory factory = new ConnectionFactory(params); try { connection = factory.newConnection("192.168.18.21",
rabbitmq 学习-2-安装
Windows 1,下载 下载erlang: 下载rabbitmq:/download.html 2,安装 先安装erlang,C:\Program Files\erl5.7.5 设置环境变量:ERLANG_HOME=C:\Program Files\erl5.7.5 解压rabbitmq,进入dos下, >cd C:\rabbitmq_server-1.7.2\sbin >rabbitmq-service install 3,启动 >cd C:\rabbitmq_server-1.7.2\sbin >rabbitmq-service start 或都直接双击C:\rabbitmq_server-1.7.2\sbin\rabbitmq-service.bat Linux 1,下载erlang for linux版本,安装
遵守此数据格式的工具,其创建和解释消息,都能与其他兼容工具进行互操作。 AMQP规范的版本: 0-8 是2006年6月发布 0-9 于2006年12月发布 0-9-1 于2008年11月发布 0-10 于2009年下半年发布 1.0 draft (文档还是草案) AMQP的实现有: 1)OpenAMQ AMQP的开源实现,用C语言编写,运行于Linux、AIX、Solaris、Windows、OpenVMS。 2)Apache Qpid Apache的开源项目,支持C++、Ruby、Java、JMS、Python和.NET。 3)Redhat Enterprise MRG 实现了AMQP的最新版本0-10,提供了丰富的特征集,比如完全管理、联合、Active-Active集群,有
rabbitmq 学习-1-AMQP介绍
本文档来自网上.[ 看否网正使用rabbitmq做爬虫队列,欢迎大家交流q
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准, 为面向消息的中间件设计。
tar -xzf otp_src_R12B-5.tar.gz cd otp_src_R12B-5 ./configure --prefix=/usr make && make install 或者先make再make install
2,下载rabbitmq for linux,最好直接下载:rabbitmq-server-generic-unix-1.7.2.tar.gz,如果下载其它 的,还要装simplejson(装simplejson得装python,还要能使用yum命令,比较复杂)
AMQP.PROTOCOL.PORT); } catch (IOException e) { e.printStackTrace(); } } public void testSend() { try { Channel channel = connection.createChannel(); System.out.println(channel.toString()); Assert.assertNotNull(channel); byte[] messageBodyBytes = "hello world".getBytes(); channel.basicPublish("exchangeName", "routingKey",
其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR
的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实
现(如微软的 MSMQ ,IBM 的 Websphere MQ 等),因此,在 2006 年的 6 月,Cisco 、
rabbitmq 学习-4-初试2
RpcClient,RpcServer同步发送接收消息
Channel.basicPublish,Channel.basicGet异步发送接收消息
本例是一个简单的同步发送消息实例
1,发送端 public class Publish {
private static Connection connection; static { ConnectionParameters params = new ConnectionParameters(); ConnectionFactory factory = new ConnectionFactory(params); try { connection = factory.newConnection("localhost", AMQP.PROTOCOL.PORT); } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) { try { Channel channel = connection.createChannel(); RpcClient rpc = new RpcClient(channel, "exchangeName", "routingKey"); byte[] primitiveCall = rpc.primitiveCall("hello world".getBytes()); System.out.println(new String(primitiveCall)); primitiveCall = rpc.primitiveCall("hello world2".getBytes()); System.out.println(new String(primitiveCall)); rpc = new RpcClient(channel, "exchangeName", "routingKey2"); primitiveCall = rpc.primitiveCall("hello world2".getBytes()); System.out.println(new String(primitiveCall)); System.out.println("publish success."); } catch (Exception e) { e.printStackTrace(); } } }
相关主题