码迷,mamicode.com
首页 > 其他好文 > 详细

RabbitMQ系列之一:HelloWorld

时间:2014-10-21 19:29:54      阅读:229      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   os   ar   使用   java   sp   

server端代码:

 1 package com.example.helloworld;
 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 
11     public static void main(String[] args) throws IOException {
12         
13         // 队列名称
14         String queueName = "HELLO";
15         
16         ConnectionFactory factory = new ConnectionFactory();
17         
18         //远程服务器ip,如果在本地测试可以改成localhost
19         factory.setHost("121.40.151.120");
20         
21         //不是在本地测试,用户名和密码必填
22         factory.setUsername("rabbitmqname");
23         factory.setPassword("rabbitmqpwd");
24         
25         Connection conn = factory.newConnection();
26         Channel channel = conn.createChannel();
27         
28         /** 
29          * 参数说明:
30          * queue:队列名称
31          * durable:队列数据是否可以持久化,true:是,false:否,也就是服务重启后队列数据是否依然存在
32          * exclusive:是否为某一个队列的专用连接
33          * autoDelete:当队列不再被使用也就是没有消费者的时候是否自动删除
34          * arguments:其它参数,比如队列存活时间
35         */
36         channel.queueDeclare(queueName, false, false, false, null);
37         String message = "Hello World!"; 
38         
39         /** 
40          * 参数说明:
41          * exchange:默认的exchange就是"",是direct类型的,
42          *             任何发往到默认exchange的消息都会被路由到routingKey的名字对应的队列上,如果没有对应的队列,则消息会被丢弃。
43          * routingKey:指定接收消息的队列
44          * props:其它属性,比如消息路由头信息
45          * body:消息内容
46         */  
47         channel.basicPublish("", queueName, null, message.getBytes());  
48         
49         System.out.println("[" + message + "]");  
50           
51         // 最后,我们关闭channel和连接,释放资源。  
52         channel.close();  
53         conn.close(); 
54     }
55 
56 }

 

client端代码:

 1 package com.example.helloworld;
 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 import com.rabbitmq.client.ConsumerCancelledException;
 9 import com.rabbitmq.client.QueueingConsumer;
10 import com.rabbitmq.client.ShutdownSignalException;
11 
12 public class Recv {
13 
14     public static void main(String[] args) throws IOException, ShutdownSignalException, 
15         ConsumerCancelledException, InterruptedException {
16         
17         // 队列名称
18         String queueName = "HELLO";
19         
20         ConnectionFactory factory = new ConnectionFactory(); 
21         
22         factory.setHost("121.40.151.120");
23         factory.setUsername("rabbitmqname");
24         factory.setPassword("rabbitmqpwd");
25         
26         Connection connection = factory.newConnection();  
27         Channel channel = connection.createChannel();  
28           
29         //与服务端一致
30         channel.queueDeclare(queueName, false, false, false, null);  
31         
32         System.out.println("CRTL+C");  
33           
34         // QueueingConsumer:用来缓存服务端推送给我们的消息。  
35         QueueingConsumer consumer = new QueueingConsumer(channel);  
36         
37         /** 
38          * 参数说明:
39          * queue:队列名称
40          * autoAck:是否自动应答,true:消息一旦被消费者消费,服务端就知道该消息已经投递,从而从队列中将消息剔除;
41          *                      false:需要在消费端显示调用channel.basicAck()方法通知服务端,如果没用显示调用,消息将进入
42          *                            unacknowledged状态,当前消费者连接断开后该消息变成ready状态重新进入队列。
43          * callback:具体消费者类
44         */
45         channel.basicConsume(queueName, true, consumer);  
46           
47         while (true) {  
48             QueueingConsumer.Delivery delivery = consumer.nextDelivery();  
49             String message = new String(delivery.getBody());  
50             System.out.println("[" + message + "]");  
51         } 
52     }
53 
54 }

 

RabbitMQ系列之一:HelloWorld

标签:style   blog   color   io   os   ar   使用   java   sp   

原文地址:http://www.cnblogs.com/weishaohua/p/4041074.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!