今天这篇文章想要讲的是交换机,有三个交换机,fanout,direct,topic,这篇文章里面我要写的是fanout交换机
fanout:广播
广播顾名思义就是所有都通知到,所以在发送消息时,所有的queue都可以收到消息
首先我们需要先建立一个交换机,在rabbitmq可视化界面当中我们创建一个交换机
在这里写一个name还有一个type,很显然,我们需要一个fanout类型的交换机,所以我们选择fanout
然后绑定我们新建的这个队列,当然我们应该先创建队列,这里取名字就是fanout.queue1,fanout.queue2
然后我们就用java代码开始操作
@RabbitListener(queues = "fanout.queue1") public void listenFanoutQueue1(String msg) throws InterruptedException { System.out.println("消费者1收到了fanout.queue1的消息:【" + msg + "】"); Thread.sleep(20); } @RabbitListener(queues = "fanout.queue2") public void listenFanoutQueue2(String msg) throws InterruptedException { System.out.println("消费者2收到了fanout.queue2的消息:【" + msg + "】"); }
这里我创建了两个消费者
然后我们写个单元测试,然后参数需要变成交换机的参数,第二个参数是什么呢,其实是routingKey,我们这里写null就是说没有任何routingKey,当然你直接写""同样是可以
@Test void testSendFanout() { String exchangeName = "hmall.fanout"; String msg = "hello , everyone!"; rabbitTemplate.convertAndSend(exchangeName , null , msg); }
然后我们重新运行,我们就会发现
很显然两个队列都收到了消息,所以才会产生监听
所以广播就是这个样子实现
标签:fanout,String,菜菜,queue2,RabbitMQ,交换机,第五篇,msg,我们 From: https://www.cnblogs.com/codeforceshobby/p/18123614