RabbitMQ 简介
RabbitMQ是一个消息代理 - 一个消息系统的媒介。它可以为你的应用提供一个通用的消息发送和接收平台,并且保证消息在传输过程中的安全。
RabbitMQ 安装
安装之前必须有erl语言的支持,mq和erl语言版本对应列表,RabbitMq下载地址,安装完成之后启动mq,通过以下方式连接到mq
public class RabbitMqUtils {
public static Channel getChannel() throws IOException, TimeoutException {
ConnectionFactory mqCon=new ConnectionFactory();
// mq的host
mqCon.setHost("");
// mq的userName
mqCon.setUsername("");
// mq的password
mqCon.setPassword("");
// 获取连接
Connection connection = mqCon.newConnection();
// 获取信道
Channel channel = connection.createChannel();
return channel;
}
}
RabbitMq的简单应用(Hellow模式)
创建Producer
public class Producer {
public static final String QUEUE_NAME="hello_queue";
public static void main(String[] args) throws IOException, TimeoutException {
Channel channel = RabbitMqUtils.getChannel();
/**
* 生成队列
* 1.队列名称
* 2.队列消息是否持久化
* 3.该队列是否只提供一个消费者进行消费
* 4 是否自动删除,最后一个消费者开链接以后,该队列是否自动删除
* 5.其他参数
*/
channel.queueDeclare(QUEUE_NAME,false,false,false,null);
String message="hello word";
/**
* 发送一个消息
* 1.发送到那个交换机上
* 2.路由key
* 3.其他参数
* 4.发送消息的消息体
*/
channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
}
}
创建Costomer
public class Consumer {
public static void main(String[] args) throws IOException, TimeoutException {
Channel channel = RabbitMqUtils.getChannel();
// 消费者成功消费的回调
DeliverCallback deliverCallback=(consumerTag, message)->{
System.out.println("message = " + new String(message.getBody()));
};
CancelCallback cancelCallback=(consumerTag)->{
System.out.println("消息消费被中断");
};
/**
* 消费者消费消息
* 1.消费那个队列
* 2.消费成功之后是否自动应答
* 3.消费者成功消费的回调
* 4.消费者取录消费的回调
*/
channel.basicConsume(Producer.QUEUE_NAME,true,deliverCallback,cancelCallback);
}
}
启动代码
先启动消息的生产者,再启动消费者,这样就可以消费消息了