RabbitMQ提供了四种Exchange一刻丝称子(交换)模式:fanout佛闹特(分列),direct滴软科特(直系),topic他陪克(主题),header 憨刀(头部)。
一. Fanout Exchange(分列交换模式)
所有发送到Fanout(佛闹特)Exchange(一刻丝称子 )的消息都会被转发到与该Exchange 绑定(Binding)的所有Queue上。
Fanout Exchange 不需要处理RouteKey(路径key) 。只需要简单的将队列绑定到exchange 上。这样发送到exchange的消息都会被转发到与该交换机绑定的所有队列上。类似子网广播,每台子网内的主机都获得了一份复制的消息。
所以,Fanout Exchange 转发消息是最快的。
二. Direct Exchange(直系模式)
所有发送到Direct(滴软可桃) Exchange的消息被转发到RouteKey中指定的Queue。
Direct模式,可以使用rabbitMQ自带的Exchange:default Exchange 。所以不需要将Exchange进行任何绑定(binding)操作 。消息传递时,RouteKey必须完全匹 配,才会被队列接收,否则该消息会被抛弃。
三. Topic Exchange
所有发送到Topic(塔佩克)Exchange的消息被转发到所有关心RouteKey中指定Topic的Queue上,
Exchange 将RouteKey 和某Topic 进行模糊匹配。此时队列需要绑定一个Topic。可以使用通配符进行模糊匹配,符号“#”匹配一个或多个词,符号“*”匹配一个词。因此“log.#”能够匹配到“log.info.oa”,但是“log.*” 只会匹配到“log.error”。