RabbitMQ 之HelloWorld

来源:互联网 发布:lua 下载网络文件 编辑:程序博客网 时间:2024/06/06 03:48

引入

我们的HelloWorld程序将包含两个程序:一个可以发送消息的生产者和一个可以等待接受消息的消费者。

当然,我们的程序需要一些jar包,下载地址如下:

http://www.rabbitmq.com/java-client.html

程序

生产者

发送消息的流程如下图

我们的程序将会连接到RabbitMQServer,发送一个简单的消息,最后退出。

import com.rabbitmq.client.ConnectionFactory;import com.rabbitmq.client.Connection;import com.rabbitmq.client.Channel;public class Sender {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);    String message = "Hello World!";    channel.basicPublish("", QUEUE_NAME, null, message.getBytes());    System.out.println(" [x] Sent '" + message + "'");    channel.close();    connection.close();  }}

消费者

接收方的流程如图:


接收方将一直监听消息并将其打印出来:

import com.rabbitmq.client.ConnectionFactory;import com.rabbitmq.client.Connection;import com.rabbitmq.client.Channel;import com.rabbitmq.client.QueueingConsumer;public class Received {    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 + "'");    }  }}

首先我们运行Sender.java,然后是Received.java。结果如下:

 [*] Waiting for messages. To exit press CTRL+C
 [x] Received 'Hello World!'


在运行之前,要确保服务已经启动,打开rabbit 命令窗口,输入:rabbitmq-server start 来启动它。

当我们“生产”了一个消息后,可以使用“rabbitmqctl list_queues” 来查看队列。




原创粉丝点击