使用RabbitMQ简单发送接收消息
来源:互联网 发布:淘宝自助开通账户 编辑:程序博客网 时间:2024/05/16 17:14
参考:http://blog.csdn.net/lmj623565791/article/details/37607165
http://blog.csdn.net/anzhsoft/article/details/19563091
http://www.rabbitmq.com/tutorials/tutorial-one-java.html
举个例子,假如你想投递一封邮件,你可以将邮件投递到某个邮箱,然后邮递员从邮箱中获取邮件,并将邮件交付到接收方,在这个过程中,RabbitMQ就 类似于邮箱 、邮局和邮递员,RabbitMQ是一个消息队列,它可以接收程序发送的消息,然后放入到相应的消息队列中,另外一些程序可以从消息队列中获取数据,以此完成程序之间的通信.
下面介绍一些概念:
1、生产者:程序中,发送消息的一方称为生产者
4、Connection
Connection是一个TCP连接,消费者和生产者通过TCP连接到RabbitMQ server
5.Channel
channel建立在Conection之上,因为频繁建立关闭TCP连接会影响到性能,因此使用Channel发送、接收消息
通过channel的queueDeclare()方法可以指定要发送消息/接收消息的队列
通过channel的basicPublic()方法可以向队列中发送消息
下面是一个简单的例子,Sender向消息队列中发送消息,Receiver从消息队列中获取消息
1.创建一个发送者类
package com.rabbit.test1;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;/** * RabbitMQ发送消息 * Sender */public class Sender { //队列名称 private final static String QUEUE_NAME = "queue-test"; public static void main(String[] argv) throws java.io.IOException { //1.创建一个ConnectionFactory连接工厂connectionFactory ConnectionFactory connectionFactory = new ConnectionFactory(); //2.通过connectionFactory设置RabbitMQ所在IP等信息 connectionFactory.setHost("localhost"); // connectionFactory.setPort(5762); //指定端口 // connectionFactory.setUsername("admin");//用户名 // connectionFactory.setPassword("admin");//密码 //3.通过connectionFactory创建一个连接connection Connection connection = connectionFactory.newConnection(); //4.通过connection创建一个频道channel Channel channel = connection.createChannel(); //5.通过channel指定一个队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); //发送的消息 String message = "hello world!"; //6.通过channel向队列中添加消息 channel.basicPublish("", QUEUE_NAME, null, message.getBytes()); System.out.println("向" + QUEUE_NAME + "中添加了一条消息:" + message); //7.关闭频道 channel.close(); //8.关闭连接 connection.close(); }}
package com.rabbit.test1;import com.rabbitmq.client.Channel;import com.rabbitmq.client.Connection;import com.rabbitmq.client.ConnectionFactory;import com.rabbitmq.client.QueueingConsumer;import com.rabbitmq.client.QueueingConsumer.Delivery;/** * RabbitMQ接收消息 * Receiver * */public class Receiver { //队列名称 private final static String QUEUE_NAME = "queue-test"; public static void main(String[] argv) throws java.io.IOException, java.lang.InterruptedException { //1.创建一个ConnectionFactory连接工厂connectionFactory ConnectionFactory connectionFactory = new ConnectionFactory(); //2.通过connectionFactory设置RabbitMQ所在IP等信息 connectionFactory.setHost("localhost"); //3.通过connectionFactory创建一个连接connection Connection connection = connectionFactory.newConnection(); //4.通过connection创建一个频道channel Channel channel = connection.createChannel(); //5.通过channel指定队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); //与发送消息不同的地方 //6.创建一个消费者队列consumer,并指定channel QueueingConsumer consumer = new QueueingConsumer(channel); //7.为channel指定消费者 channel.basicConsume(QUEUE_NAME, true, consumer); while (true) { //从consumer中获取队列中的消息,nextDelivery是一个阻塞方法,如果队列中无内容,则等待 Delivery delivery = consumer.nextDelivery(); String message = new String(delivery.getBody()); System.out.println("接收到了" + QUEUE_NAME + "中的消息:" + message); } }}
3.启动Sender,向消息队列中添加信息
访问RabbitMQ的管理界面,可以看到自动创建了一个queue-test的队列,并且有一条消息
启动Reciever,可以看到接收者从消息队列中获取了消息并打印在控制台
- 使用RabbitMQ简单发送接收消息
- RabbitMq研究历程一:如何使用RabbitMq发送,接收消息
- RabbitMQ之最简单的消息的发送与接收
- Rabbitmq消息发送接收Demo
- .Net下RabbitMQ的使用(2) -- 发送接收消息
- .Net下RabbitMQ的使用(2) -- 发送接收消息
- RabbitMQ第一篇——初识RabbitMQ,简单的消息发送和接收
- rabbitmq一---一对一发送及接收消息
- RabbitMQ消息确认(发送确认,接收确认)
- rabbitmq学习9:使用spring-amqp发送消息及同步接收消息
- rabbitmq学习10:使用spring-amqp发送消息及异步接收消息
- rabbitMQ学习笔记(二) 简单的发送与接收消息 HelloWorld
- rabbitMQ学习笔记(二) 简单的发送与接收消息 HelloWorld
- rabbitMQ学习笔记(二) 简单的发送与接收消息 HelloWorld
- Scala:简单使用Actor的消息发送与接收求和
- java调用rabbitmq消息队列发送和接收消息实例
- SpringBoot的RabbitMQ消息队列: 一、消息发送接收第一印象
- SpringBoot的RabbitMQ消息队列: 一、消息发送接收第一印象
- 算法第四版练习题答案
- Windows下php执行exec函数调用python
- MyBatis的一级缓存和二级缓存
- hihocoder#1369 : 网络流算法的一些小结
- 240. Search a 2D Matrix II
- 使用RabbitMQ简单发送接收消息
- memo
- List三种遍历方式及效率问题
- JVM运行时内存分布
- 2017蓝桥杯模拟题
- 推荐几本学习MySQL的好书
- java向上转型实例
- 汉字转拼音 文字转语音tts(语音识别)
- java编程思想阅读笔记 第二章