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” 来查看队列。
- RabbitMQ 之HelloWorld
- 初学RabbitMQ之HelloWorld
- RabbitMq之Helloworld
- RabbitMq之HelloWorld
- RabbitMQ之入门HelloWorld(Java)
- RabbitMQ之入门HelloWorld(Erlang)
- Windows环境的RabbitMQ之HelloWorld
- rabbitMQ HelloWorld
- RabbitMQ HelloWorld
- 系统拆分解耦利器之消息队列---RabbitMQ-Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- RabbitMQ 入门 Helloworld
- 初始化列表
- 黑客入门-必学的8个DOS命令
- VMware虚拟机Red Hat图形界面与命令行介面的切换
- 要处理
- linux下killall程序简介
- RabbitMQ 之HelloWorld
- 四种强制转换方式
- 杭电2061
- linux 压缩解压缩命令
- memset()的效率以及源码分析
- Python开发: Django模板语言简单总结
- #ifdef _DEBUG用法小结
- 设计模式之单件模式
- 最简单的驱动程序