Exchange Modes
Direct
- direct 按着指定的路由发送至对应的 queue,若 routingKey 不指定,则使用默认的 ""

- 可以使用相同的 routingKey 绑定不同的 Queues,这种形式像 fanout 模式一样

Fanout
- 路由模式,设置 routingKey 是没有用的,会发送消息至所有与 fanoutExchange 绑定的 queues 里面去
- 若 FanoutExchange 改变了绑定的 Queue,RabbitMQ 不会内部刷新,需要手工删除
- faout 发送的消息,topic 也是可以接收到的

Topic
- 发送时定义什么样的 routingKey,则接收的时候按照 routingKey 的规则去接收
- topic 模式下的 routingKey 可以是表达式,用于多个 Queue 进行接收
- 若 TopicExchange 改变了绑定的 RoutingKey,RabbitMQ 不会内部刷新,需要手工删除
* & #
/**
* Q1 hello*
* Q2 hello#
* 2.hello.2 Q1
* hello.2 Q1 Q2
* hello.to.hello Q2
* null 无
* "" 无
* 2hello 无
* hello2 无
*/
- * 只匹配一个字符
- # 匹配多个字符
- 若存在多个匹配字符,则 * 就不会命中,只有 #会命中
- hello2 与 2hello 不会命中说明不是 like,而是单词的 full 匹配;
Demo
springboot-rabbit