前言
前面的系列中,我们都是通过队列发送和接收消息的,然而rabbitmq还有一个别的也是最常用的消息发送和接收机制,那就是交换机。一般来说,
消息是发送到交换机,然后由绑定到交换机中的队列来接收消息。完整的消息流程如下:
图中P是生产者,X是交换机,红色的两个队列,生产者发送消息到交换机,交换机再发送到两个队列
交换机的类型
交换机主要包括如下4种类型:
- Fanout exchange(扇形交换机)
- Direct exchange(直连交换机)
- Topic exchange(主题交换机)
- Headers exchange(头交换机)
Fanout exchange扇形交换机
扇形交换机将消息发送给所有绑定到它身上的队列,有n个队列绑定到它身上,就会将消息发送到n个队列上。下面来看实现步骤:
- 新建一个springboot项目,pom文件按照之前的,这里就不粘贴了
- 在src/main/java文件夹下新建一个config包,包下新建一个FanoutConfig配置类
- 在src/mian/java下新建component包,包下新建FanoutReceiver和FanoutSender两个类,一个用于发送,一个用于接收
@Configuration
public class FanoutConfig {
@Bean
public Queue anonymousQueue1(){
return new AnonymousQueue();
}
@Bean
public Queue anonymousQueue2(){
return new AnonymousQueue(