关于RabbitMQ的Exchange类型
参考地址:《》
github地址:
相关学习笔记:
- 手动测试过,Direct和Fanout两种路由模式下,Queue都可以有多个接收者,如果有多个接收者监控同一个Queue,那么会轮流将消息发送至接收者
- Fanout路由模式下,关键在于路由,如果将路由与多个Queue进行绑定,则会多个Queue的接收者同时收到消息(同一个Queue多个接收者的情况依然会存在)
Direct Exchange:
所有发送到Direct Exchange的消息被转发到RouteKey中指定的Queue
注意:Direct模式可以使用RabbitMQ自带的Exchange:default Exchange,所以不需要将Exchange进行任何的绑定(binding)操作,消息传递时,RouteKey必须完全匹配才会被队列接收,否则该消息会被抛弃
Fanout Exchange:
不处理路由键,只需要简单的将队列绑定到交换机上
发送到交换机的消息都会被转发到与该交换机绑定的所有队列上Fanout交换机转发消息是最快的
Topic Exchange:
所有发送到Topic Exchange的消息被转发到所有关心RouteKey中指定Topic的Queue上
Exchange将RouteKey和某Topic进行模糊匹配,此时队列需要绑定一个Topic注意:可以使用通配符进行模糊匹配符号“#”匹配一个或多个词符号“*”匹配不多不少一个词(只能匹配一个词)例如“log.#”能匹配到“log.info.oa”"log.*"只会匹配到"log.error"