POM文件
<!--指定 jdk 编译版本-->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!--rabbitmq 依赖客户端-->
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.8.0</version>
</dependency>
<!--操作文件流的一个依赖-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>2.6</version>
</dependency>
</dependencies>
在下图中,“ P”是我们的生产者,“ C”是我们的消费者。中间的框是一个队列-RabbitMQ 代表使用者保留的消息缓冲区
生产者代码
package com.xiang.rabbitmq.one;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
/**
* 生产者:发送消息
*/
public class Producer {
// 消息队列名称
public static final String QUEUE_NAME = "hello";
public static void main(String[] args) throws IOException, TimeoutException {
// 创建一个连接工厂
ConnectionFactory factory = new ConnectionFactory();
// 工厂ip 连接rabbitmq的队列
factory.setHost("192.168.235.128");
// 用户名
factory.setUsername("admin");
// 密码
factory.setPassword("123456");
// 创建连接
Connection connection = factory.newConnection();
// 获取信道
Channel channel = connection.createChannel();
/**
* 可以不创建交换机 使用默认的
* 创建一个队列
* 对列名称,
* 消息持久化(默认消息存储在内存),
* 队列是否只供一个消费者进行消费,是否进行消息共享,true可以多个消费者进行消费
* 是否自动删除,最后一个消费端断开连接后,改队列是否自动删除,true自动删除
*/
channel.queueDeclare(QUEUE_NAME,false,false,false,null);
//发消息
String message ="hello rabbitMQ";
/**
* 交换机
* 路由的key
* 其他参数
* 消息
*/
channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
System.out.println("消息发送完毕");
}
}
直接运行
消费者代码
package com.xiang.rabbitmq.one;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
import java.io.IOException;
import java.util.concurrent.TimeoutException;
/**
* 生产者:发送消息
*/
public class Producer {
// 消息队列名称
public static final String QUEUE_NAME = "hello";
public static void main(String[] args) throws IOException, TimeoutException {
// 创建一个连接工厂
ConnectionFactory factory = new ConnectionFactory();
// 工厂ip 连接rabbitmq的队列
factory.setHost("192.168.235.128");
// 用户名
factory.setUsername("admin");
// 密码
factory.setPassword("123456");
// 创建连接
Connection connection = factory.newConnection();
// 获取信道
Channel channel = connection.createChannel();
/**
* 可以不创建交换机 使用默认的
* 创建一个队列
* 对列名称,
* 消息持久化(默认消息存储在内存),
* 队列是否只供一个消费者进行消费,是否进行消息共享,true可以多个消费者进行消费
* 是否自动删除,最后一个消费端断开连接后,改队列是否自动删除,true自动删除
*/
channel.queueDeclare(QUEUE_NAME,false,false,false,null);
//发消息
String message ="hello rabbitMQ";
/**
* 交换机
* 路由的key
* 其他参数
* 消息
*/
channel.basicPublish("",QUEUE_NAME,null,message.getBytes());
System.out.println("消息发送完毕");
}
}