1、 rabbitmq简介

  rabbitmq是一个消息代理,或者讲是一个消息中间件。主要是用来接收和转发信息的,它是对消息不做任何处理的。MQ是消费-生产者模型的一个典型的代表,一端往消息队列中不断写入消息,而另一端则可以读取或者订阅队列中的消息。MQ和JMS类似,但不同的是JMS是SUN JAVA消息中间件服务的一个标准和API定义,而MQ则是遵循了AMQP协议的具体实现和产品。

  用来发送消息的程序我们称为生产者:

                                          rabbitmq系列一 之简单队列

  用来存储信息的我们称为队列,队列只受到内存和磁盘的限制,是一个大的消息缓存区。生产者可以发送消息到队列中,而消费者从队列中接收消息。

                          rabbitmq系列一 之简单队列

  等待接收消息的程序我们称为消费者:

                               rabbitmq系列一 之简单队列

 

   下面图中, “P”是生产者, “C”是消费者,中间的框是队列——代表是消息的缓冲区。

                  rabbitmq系列一 之简单队列

  

  下面我们开始我们的简单程序hello world

        

2 、sending(生产者)

                       rabbitmq系列一 之简单队列

  生产者的代码如下:

 1 package rabbitmq.main;
 2 
 3 import java.io.IOException;
 4 import java.util.concurrent.TimeoutException;
 5 
 6 import com.rabbitmq.client.Channel;
 7 import com.rabbitmq.client.Connection;
 8 
 9 import rabbitmq.utils.ConnectionUtils;
10 
11 public class Send {
12 
13     private static  final String QUEUE_NAME = "rabbitmq_queue";
14     public static void main(String[] args) throws IOException, TimeoutException {
15         //获取一个连接
16         Connection connection = ConnectionUtils.getConnection();
17         //从连接中获取一个通道
18         Channel channel = connection.createChannel();
19         //创建队列
20         channel.queueDeclare(QUEUE_NAME, false, false, false, null);
21         String message = "hello world";
22         //往队列里发送消息
23         channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
24         System.out.println(" [x] Sent '" + message + "'");
25         //关闭通道
26         channel.close();
27         //关闭连接
28         connection.close();
29     }
30 }
View Code

相关文章: