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