发布订阅(fanout)
不需要路由键
需要提前将队列和交换机进行绑定,一个交换机可以被多个队列绑定,一个队列也可以绑定到多个交换机上
发送到交换机上的消息会广播到所有绑定着的消息队列中
直接查找(direct)
必须指定唯一的路由键
任何发送到Direct Exchange的消息都会被转发到路由键中指定的队列中
消息传递时需要一个“RouteKey”,可以简单的理解为要发送到的队列名字。
模糊匹配(topic)
可以指定一个模糊的路由键
任何发送到Topic Exchange的消息都会被转发到所有关心路由键中指定话题的队列上
在进行绑定时,要提供一个该队列关心的主题,如“#.log.#”表示该队列关心所有涉及log的消息
(一个RouteKey为”MQ.log.error”的消息会被转发到该队列)。
“#”表示0个或若干个关键字,“*”表示一个关键字。
如“log.*”能与“log.warn”匹配,无法与“log.warn.timeout”匹配;但是“log.#”能与上述两者匹配。