Maven:
<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --> <dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.9.0</version> </dependency>生产者:
import com.rabbitmq.client.*; import java.io.IOException; import java.util.concurrent.TimeoutException; public class Main { public static void main(String[] args) throws IOException, TimeoutException { String QUEUE_NAME = "testQueue"; String EXCHANGE_NAME = "test-exchange"; String ROUTING_KEY = "TEST"; String MESSAGE = "123"; ConnectionFactory factory = new ConnectionFactory(); factory.setHost("你的RabbitMQ主机地址"); factory.setPort(5672); factory.setVirtualHost("/");//虚拟路径,默认存在 “/” factory.setUsername("guest"); factory.setPassword("guest"); //获取连接 Connection connection = factory.newConnection(); //创建通道 final Channel channel = connection.createChannel(); //声明交换机 channel.exchangeDeclare(EXCHANGE_NAME, "direct", true); //声明队列 channel.queueDeclare(QUEUE_NAME, false, false, false, null); //绑定队列 channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, ROUTING_KEY); //发布 channel.basicPublish(EXCHANGE_NAME, ROUTING_KEY, null, MESSAGE.getBytes()); channel.close(); connection.close(); } }消费者:
import com.rabbitmq.client.*; import java.io.IOException; import java.util.concurrent.TimeoutException; public class Main { public static void main(String[] args) throws IOException, TimeoutException { String QUEUE_NAME = "testQueue"; ConnectionFactory factory = new ConnectionFactory(); factory.setHost("你的RabbitMQ主机地址"); factory.setPort(5672); factory.setVirtualHost("/");//虚拟路径,默认存在 “/” factory.setUsername("guest"); factory.setPassword("guest"); //获取连接 Connection connection = factory.newConnection(); //创建通道 final Channel channel = connection.createChannel(); while (true) { channel.basicConsume(QUEUE_NAME, false, "", new DefaultConsumer(channel) { @Override public void handleDelivery(String consumerTag, Envelope envelope, AMQP.BasicProperties properties, byte[] body) throws IOException { channel.basicAck(envelope.getDeliveryTag(), false); System.out.println(envelope.getDeliveryTag()); System.out.println("消息内容:"+new String(body,"UTF-8")); } }); } } }