rabbitmq学习1:hello world

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

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

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

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

 


 

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

 

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

 

Java代码   收藏代码
  1. package com.abin.test;  
  2.   
  3. import java.io.IOException;  
  4.   
  5. import com.rabbitmq.client.Channel;  
  6. import com.rabbitmq.client.Connection;  
  7. import com.rabbitmq.client.ConnectionFactory;  
  8.   
  9. public class Send {  
  10.     private final static String QUEUE_NAME = "hello";  
  11.   
  12.     public static void main(String[] args) throws IOException {  
  13.         ConnectionFactory factory = new ConnectionFactory();  
  14.         factory.setHost("localhost");  
  15.         Connection connection = factory.newConnection();  
  16.         Channel channel = connection.createChannel();  
  17.   
  18.         channel.queueDeclare(QUEUE_NAME, falsefalsefalsenull);  
  19.         String message = "Hello World!";  
  20.         channel.basicPublish("", QUEUE_NAME, null, message.getBytes());  
  21.         System.out.println(" [x] Sent '" + message + "'");  
  22.   
  23.         channel.close();  
  24.         connection.close();  
  25.     }  
  26. }  

运行结果如下:

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

 

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

 

Java代码   收藏代码
  1. package com.abin.test;  
  2.   
  3. import com.rabbitmq.client.Channel;  
  4. import com.rabbitmq.client.Connection;  
  5. import com.rabbitmq.client.ConnectionFactory;  
  6. import com.rabbitmq.client.QueueingConsumer;  
  7.   
  8. public class Reqv {  
  9.     private final static String QUEUE_NAME = "hello";  
  10.   
  11.     public static void main(String[] argv) throws Exception {  
  12.   
  13.         ConnectionFactory factory = new ConnectionFactory();  
  14.         factory.setHost("localhost");  
  15.         Connection connection = factory.newConnection();  
  16.         Channel channel = connection.createChannel();  
  17.   
  18.         channel.queueDeclare(QUEUE_NAME, falsefalsefalsenull);  
  19.         System.out.println(" [*] Waiting for messages. To exit press CTRL+C");  
  20.   
  21.         QueueingConsumer consumer = new QueueingConsumer(channel);  
  22.         channel.basicConsume(QUEUE_NAME, true, consumer);  
  23.   
  24.         while (true) {  
  25.             QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
  26.             String message = new String(delivery.getBody());  
  27.             System.out.println(" [x] Received '" + message + "'");  
  28.         }  
  29.     }  
  30. }  

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

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值