依赖:
<dependency>
<groupId>com.rabbitmq</groupId>
<artifactId>amqp-client</artifactId>
<version>5.6.0</version>
</dependency>
生产者主要代码:
package com.soft.simple;
import com.rabbitmq.client.AMQP;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.ConnectionFactory;
/**
* Created by Administrator on 2020/9/6 0006.
*/
public class SimpleProvider {
static String QUEUE_NAME = "simple";
public static void main(String[] args) throws Exception {
/*1、创建工厂(设置相关参数)*/
ConnectionFactory connectionFactory = new ConnectionFactory();
/*主机:默认是localhost*/
connectionFactory.setHost("localhost");
/*端口:默认是5672*/
connectionFactory.setPort(5672);
/*虚拟主机:默认是/*/
connectionFactory.setVirtualHost("/guest");
/*用户名:guest*/
connectionFactory.setUsername("guest");
/*密码:guest*/
connectionFactory.setPassword("guest");
/*2、新建连接*/
Connection connection = connectionFactory.newConnection();
/*3、创建频道*/
Channel channel = connection.createChannel();
/*4、申明队列*/
channel.queueDeclare(QUEUE_NAME, true, false, false, null);
/*5、发送消息*/
String message = "hello rabbitMQ!!!";
/*
* exchange: 交换机名称,如果是空字符串表示使用默认的交换机
* 路由key:简单模式可以使用队列名
* 消息的其他属性
* 消息的字节数组*/
channel.basicPublish("", QUEUE_NAME, null, message.getBytes());
/*6、关闭资源*/
channel.close();
connection.close();
}
}
消费者主要代码:
package com.soft.simple;
import com.rabbitmq.client.*;
import java.io.IOException;
/**
* Created by Administrator on 2020/9/6 0006.
*/
public class SimpleComsumer {
public static void main(String[] args) throws Exception {
/*创建工厂,并设置参数*/
ConnectionFactory connectionFactory = new ConnectionFactory();
connectionFactory.setHost("localhost");
connectionFactory.setPort(5672);
connectionFactory.setVirtualHost("/guest");
connectionFactory.setUsername("guest");
connectionFactory.setPassword("guest");
/*新建连接*/
Connection connection = connectionFactory.newConnection();
/*创建频道*/
Channel channel = connection.createChannel();
/*申明队列*/
channel.queueDeclare(SimpleProvider.QUEUE_NAME, true, false, false, null);
/*创建消费者*/
DefaultConsumer defaultConsumer = new DefaultConsumer(channel){
@Override
public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException {
System.out.println(consumerTag + "------" + envelope + "------" + properties + "------" + new String(body));
}
};
/*监听*/
channel.basicConsume(SimpleProvider.QUEUE_NAME, true, defaultConsumer);
}
}