diff --git a/src/main/java/com/example/rabbitmq/listener/MqListener.java b/src/main/java/com/example/rabbitmq/listener/MqListener.java index 248221d..844666e 100644 --- a/src/main/java/com/example/rabbitmq/listener/MqListener.java +++ b/src/main/java/com/example/rabbitmq/listener/MqListener.java @@ -7,8 +7,66 @@ import org.springframework.stereotype.Component; @Slf4j @Component public class MqListener { + /** + * 监听 + * + * @param message 收到消息 + */ @RabbitListener(queues = "hello.eq") void listenHelloQueue(String message) { - System.out.println("消费者收到了消息" + message); + System.out.println("消费者[hello.eq]收到了消息" + message); + } + + /** + * 监听 work.queue 中队列消息 + * @param message 消息 + */ + @RabbitListener(queues = "work.queue") + void workQueue(String message) { + System.out.println("消费者[work.queue]收到消息" + message); + } + + /** + * 监听 work.queue 中队列消息 + * @param message 消息 + */ + @RabbitListener(queues = "work.queue") + void workQueue2(String message) { + System.err.println("消费者2[work.queue]收到消息" + message); + } + + /** + * 监听 direct.queue1 中队列消息 + * @param message 消息 + */ + @RabbitListener(queues = "direct.queue1") + public void listenDirectQueue1(String message) { + System.out.println("direct.queue1 收到了 direct.queue1:【消息】" + message); + } + /** + * 监听 direct.queue2 中队列消息 + * @param message 消息 + */ + @RabbitListener(queues = "direct.queue2") + public void listenDirectQueue(String message) { + System.out.println("direct.queue2 收到了 direct.queue2:【消息】" + message); + } + + /** + * 接受消息 topic.queue1 + * @param message 消息 + */ + @RabbitListener(queues = "topic.queue1") + public void listenTopicQueue1(String message) { + System.out.println("topic.queue1 收到了 【消息]" + message); + } + + /** + * 接受消息 topic.queue1 + * @param message 消息 + */ + @RabbitListener(queues = "topic.queue2") + public void listenTopicQueue2(String message) { + System.out.println("topic.queue2 收到了 【消息]" + message); } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 26ff5fe..de8480e 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,7 +1,6 @@ - -logging.pattern.dateformat= MM-dd HH:mm:ss:SSS - +logging.pattern.dateformat=MM-dd HH:mm:ss:SSS spring.rabbitmq.username=bunny spring.rabbitmq.password=02120212 spring.rabbitmq.port=5672 -spring.rabbitmq.host=192.168.2.156 \ No newline at end of file +spring.rabbitmq.host=192.168.2.156 +spring.rabbitmq.listener.simple.prefetch=1 \ No newline at end of file diff --git a/src/test/java/com/example/rabbitmq/RabbitMqApplicationTests.java b/src/test/java/com/example/rabbitmq/RabbitMqApplicationTests.java index bdb0520..3da2490 100644 --- a/src/test/java/com/example/rabbitmq/RabbitMqApplicationTests.java +++ b/src/test/java/com/example/rabbitmq/RabbitMqApplicationTests.java @@ -20,4 +20,39 @@ class RabbitMqApplicationTests { String message = "Hello"; rabbitTemplate.convertAndSend(queueName, message); } + + // 接受消息 + @Test + void testWorkQueue() throws InterruptedException { + for (int i = 1; i <= 100; i++) { + String queueName = "work.queue"; + String message = "Hello" + i; + rabbitTemplate.convertAndSend(queueName, message); + Thread.sleep(20); + } + } + + // 发给交换机,使用key发送,当前key是所有人都可以接受到 + @Test + void testWorkQueue1() { + String exchangeName = "bunny.direct"; + String message = "所有人都收到"; + rabbitTemplate.convertAndSend(exchangeName, "red", message); + } + + // 发送消息固定key可以接受到 + @Test + void testWorkQueue2() { + String exchangeName = "bunny.direct"; + String message = "blue都收到"; + rabbitTemplate.convertAndSend(exchangeName, "blue", message); + } + + // 使用通配符 chin.# 后面无论写什么这个都能收到,topic可以接受通配符 + @Test + void testWorkQueue3() { + String exchangeName = "bunny.topic"; + String message = "今天天气好"; + rabbitTemplate.convertAndSend(exchangeName, "chin.weather", message); + } }