rabbitmq简单使用
来源:互联网 发布:php登陆后跳转页面 编辑:程序博客网 时间:2024/05/16 15:19
下载Erlang,地址:http://www.erlang.org/download/otp_win32_R15B.exe ,双击安装即可(首先装)
下载RabbitMQ,地址:http://www.rabbitmq.com/releases/rabbitmq-server/v3.3.4/rabbitmq-server-3.3.4.exe,双击安装即可
下载rabbit-client.jar ,Java代码时需要导入地址:http://www.rabbitmq.com/releases/rabbitmq-java-client/v3.3.4/rabbitmq-java-client-bin-3.3.4.zip
安装rabbitmq,进入sbin运行rabbitmq-service start
发送者:
package com.zhy.rabbit._01;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
public class Send
{
//队列名称
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws java.io.IOException
{
/**
* 创建连接连接到MabbitMQ
*/
ConnectionFactory factory = new ConnectionFactory();
//设置MabbitMQ所在主机ip或者主机名
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();
}
}
接收者:
package com.zhy.rabbit._01;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import com.rabbitmq.client.QueueingConsumer;
public class Recv
{
//队列名称
private final static String QUEUE_NAME = "hello";
public static void main(String[] argv) throws java.io.IOException,
java.lang.InterruptedException
{
//打开连接和创建频道,与发送端一样
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)
{
//nextDelivery是一个阻塞方法(内部实现其实是阻塞队列的take方法)
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
}
}
因为可能有多个实现需要调用队列,所以要对构建队列的代码做一个抽象,然后通过传参来标示是哪一个消息队列.
- rabbitmq简单使用
- rabbitmq 简单使用
- rabbitmq的简单使用(1)
- rabbitmq的简单使用(2)
- rabbitmq的简单使用(3)
- [c#]RabbitMQ的简单使用
- 使用RabbitMQ简单发送接收消息
- 使用rabbitMQ
- rabbitmq 使用
- RabbitMQ使用
- RabbitMQ使用
- rabbitmq使用
- rabbitmq使用
- rabbitMq使用
- rabbitmq使用
- RabbitMQ .NET消息队列使用入门(一)【简单示例】
- 简单的方法使用zabbix监控rabbitmq消息队列堵塞
- Linux centos 7 快速安装RabbitMQ和简单使用
- c++中成员变量初始化问题
- mybatis框架简单案例
- tomcat部署
- retrofit+Rxjava+Greendao+断点续传+Ijkplayer视频播放
- Laravel入门教程(五)- 数据库操作
- rabbitmq简单使用
- C++:大数类BigInt(有符号)
- 深度学习中的「卷积层」如何深入理解?
- jQuery中each的用法
- 商品详情
- IDEA创建SpringBoot项目报错artifact contains illegal characters
- Linux命令(29)——ls命令
- Mac 环境下编译Protobuf 生成多种语言文件
- Laravel入门教程(六)- Blade模板引擎