rabbitmq一共有三种交换机:
- fanout--广播
- direct--定向
- topic--话题
rabbitmq-web端
首先我们需要建立一个名叫cybg.fanout交换机与两个自定义的队列用于测试广播效果
我这里就起名字叫做fanout_queue1&fanout_queue2
项目中:
首先对我们的Listener加入对上面两个队列的监听
@RabbitListener(queues = "fanout_queue1")
public void fanoutQ1(String msg) throws InterruptedException {
System.out.println("fanout1接收到的msg:"+msg);
Thread.sleep(20);
}
@RabbitListener(queues = "fanout_queue2")
public void fanoutQ2(String msg) throws InterruptedException {
System.out.println("fanout2接收到的msg:"+msg);
Thread.sleep(20);
}
然后我们可以在springtest中添加对于发消息的demo
@Test
void testSendMsgToFanout(){
String exchangeName = "cybg.fanout";
String msg = "fanout everyone";
rabbitTemplate.convertAndSend(exchangeName,null,msg);
}
这里和直接发送到队列不同的是,此处的参数变为了交换机名字、routeKey、message
运行listener服务可以发现我们的队列已经可以拿到我们对交换机发送的消息
fanout1接收到的msg:fanout everyone
fanout2接收到的msg:fanout everyone