这一篇文章我们讲的是另一个转换机topic转换机
topic:话题
相对于其他交换机来说这个交换机有很强的灵活性
首先我们需要创建两个queue,名字的话这样就可以
然后创建对应的交换机
在这里交换机的类型应该要选择为topic
然后我们就可以开始binding了
这里我们看到有个符号我们一直都没有看到过,那就是‘#’,这个表示的是在后面存在0个或多个单词
然后我们先写两个消费者,这个就不多赘述了
@RabbitListener(queues = "topic.queue1") public void listenTopicQueue1(String msg) throws InterruptedException { System.out.println("消费者1收到了topic.queue1的消息:【" + msg + "】"); } @RabbitListener(queues = "topic.queue2") public void listenTopicQueue2(String msg) throws InterruptedException { System.out.println("消费者2收到了topic.queue2的消息:【" + msg + "】"); }
然后我们写个单元测试
@Test void testSendTopic() { String exchangeName = "hmall.topic"; String msg = "消息"; rabbitTemplate.convertAndSend(exchangeName , "Japan.news" , msg); }
在这里,我们看到我们routingKey写的是Japan.news,所以topic.queue2会出现监听
然后我们写个routingKey为china.news
很显然在这里两个队列都接收到了消息
最后写一个china.people
所以我们发现topic和direct其实真的很像,但是在使用的过程中更加灵活
标签:String,菜菜,queue2,RabbitMQ,topic,第七篇,交换机,msg,我们 From: https://www.cnblogs.com/codeforceshobby/p/18123906