使用rabbitmq发送消息时需要指定交换机和路由键,接收消息时指定队列名,交换机和队列之间通过路由键建立绑定关系
默认交换机
默认交换机(default exchange)实际上是一个由消息代理预先声明好的没有名字(名字为空字符串)的直连交换机(direct exchange)。它有一个特殊的属性使得它对于简单应用特别有用处:那就是每个新建队列(queue)都会自动绑定到默认交换机上,绑定的路由键(routing key)名称与队列名称相同。若发布消息时指定交换机为空(""),则该消息会给默认交换机处理。
直连交换机
直连型交换机(direct exchange)是根据消息携带的路由键(routing key)将消息投递给对应队列的。直连交换机用来处理消息的单播路由(unicast routing)(尽管它也可以处理多播路由)。下边介绍它是如何工作的:
- 将一个队列绑定到某个交换机上,同时赋予该绑定一个路由键(routing key)
- 当一个携带着路由键为
R
的消息被发送给直连交换机时,交换机会把它路由给绑定值同样为R
的队列。
比如有个直连交换机叫e1,一个队列q1,将q1以路由键k1绑定到e1后,当有消息以k1为路由键发送到e1时,e1会把这个消息投递到q1这个队列
扇型交换机
扇型交换机(funout exchange)将消息路由给绑定到它身上的所有队列,而不理会绑定的路由键。如果N个队列