首页 > 学院 > 开发设计 > 正文

abbitmq学习1:hello world

2019-11-08 03:10:12
字体:
来源:转载
供稿:网友

非常感谢 http://wubin850219.iteye.com/blog/1002932

 rabbitMQ是一个在AMQP基础上完整的,可服用的企业消息系统。他遵循Mozilla Public License 开源协议。

  关于amqp可参考http://www.oschina.net/p/rabbitmq/

 rabbitmq是一个消费的代理;通过生产者客户端生产一个信息,转送给消费者客户端;在这个传输过程中,根据你的需要可以经过路由、缓冲、持久化来得到这个消息。

  先通过一个例子开始:通过rabbitmq输出"Hello World!"

 

 

其中P代表生产者、C表示消费者、中间红色部分代表消息队列

 

生产者客户端的发送消息程序如下:

 

java代码  收藏代码package com.abin.test;    import java.io.IOException;    import com.rabbitmq.client.Channel;  import com.rabbitmq.client.Connection;  import com.rabbitmq.client.ConnectionFactory;    public class Send {      PRivate final static String QUEUE_NAME = "hello";        public static void main(String[] args) throws IOException {          ConnectionFactory factory = new ConnectionFactory();          factory.setHost("localhost");          Connection connection = factory.newConnection();          Channel channel = connection.createChannel();            channel.queueDeclare(QUEUE_NAME, false, false, false, null);          String message = "Hello World!";          channel.basicPublish("", QUEUE_NAME, null, message.getBytes());          System.out.println(" [x] Sent '" + message + "'");            channel.close();          connection.close();      }  }  

运行结果如下:

Java代码  收藏代码[x] Sent 'Hello World!'  

 

消费者客户端接收消息程序如下:

 

Java代码  收藏代码package com.abin.test;    import com.rabbitmq.client.Channel;  import com.rabbitmq.client.Connection;  import com.rabbitmq.client.ConnectionFactory;  import com.rabbitmq.client.QueueingConsumer;    public class Reqv {      private final static String QUEUE_NAME = "hello";        public static void main(String[] argv) throws Exception {            ConnectionFactory factory = new ConnectionFactory();          factory.setHost("localhost");          Connection connection = factory.newConnection();          Channel channel = connection.createChannel();            channel.queueDeclare(QUEUE_NAME, false, false, false, null);          System.out.println(" [*] Waiting for messages. To exit press CTRL+C");            QueueingConsumer consumer = new QueueingConsumer(channel);          channel.basicConsume(QUEUE_NAME, true, consumer);            while (true) {              QueueingConsumer.Delivery delivery = consumer.nextDelivery();              String message = new String(delivery.getBody());              System.out.println(" [x] Received '" + message + "'");          }      }  }  

 运行程序得到的结果如下:

Java代码  收藏代码[*] Waiting for messages. To exit press CTRL+C  [x] Received 'Hello World!'  

 如果消费者出现“[x] Received 'Hello World!'”说明已接收到此消息信息。


上一篇:TCP_IP_SOCKET简介

下一篇:ORACLE的SQL

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表