源码在文章末尾👇🏻
1. 在consumer服务声明Exchange、Queue、Binding
@Configuration
public class FanoutConfig {
@Bean
public FanoutExchange fanoutExchange(){
// 声明FanoutExchange交换机
return new FanoutExchange("声明FanoutExchange交换机");
}
//声明第一个队列
@Bean
public Queue fanoutQueue1(){
return new Queue("fanout.queue1");
}
//绑定队列1 和交换机 (名称和类型要一致, 会按照这个注入的)
@Bean
public Binding bindingQueue1(Queue fanoutQueue1, FanoutExchange fanoutExchange){
return BindingBuilder.bind(fanoutQueue1).to(fanoutExchange);
}
//声明第二个队列
@Bean
public Queue fanoutQueue2(){
return new Queue("fanout.queue2");
}
//绑定队列2 和交换机
@Bean
public Binding bindingQueue2(Queue fanoutQueue2, FanoutExchange fanoutExchange){
return BindingBuilder.bind(fanoutQueue2).to(fanoutExchange);
}
}
2. 在consumer服务声明两个消费者
@RabbitListener(queues = "fanout.queue1")
public void listenFanoutQueue1(String msg){
System.out.println("消费者接收到fanout.queue1的消息:【" + msg + "】");
}
@RabbitListener(queues = "fanout.queue2")
public void listenFanoutQueue2(String msg){
System.out.println("消费者接收到fanout.queue2的消息:【" + msg + "】");
}
3. 最后开始发送消息测试
@Test
public void testSendFanoutExchange() {
// 交换机名称
String exchangeName = "声明FanoutExchange交换机";
// 消息
String message = "测试 FanoutExchange 交换机, 请各位接收 !";
rabbitTemplate.convertAndSend(exchangeName, "", message);
}
最后运行结果
源码项目地址:
链接: https://pan.baidu.com/s/1vnYVEPGO8B5XLCf9Xc67cA 提取码: few9