AMQP默认交换机

AMQP有个默认交换机类型,它实际是direct交换机,只不过没有名字。它是由broker预先定义好的。它有个非常有用的特性,每个队列自动绑定到它,使用的routing key就是队列的名字。

例如,当你声明一个名为”search.indexing.online”的队列,但没有调用bind()与交换机绑定,broker会将它绑定到默认交换机,并使用”search.indexing.online”队列名作为routing key. 这样,发往默认交换机的消息,使用routing key=”search.indexing.online”,将会路由到同名队列。换句话说,默认交换机看起来是直接投递消息到队列,虽然技术实现上并不是这样。

在AMQP库里,声明一个默认交换机:

exchange = channel.default_exchange # or
exchange = channel.direct("")

消息消费:

channel = AMQP::Channel.new(connection)

channel.queue("search.indexing.online", :auto_delete => true).subscribe do |payload|
 puts "Received a message: #{payload}. Disconnecting..."

消息投递:

channel.direct("").publish "Hello, world!", :routing_key => "search.indexing.online"
此条目发表在Common分类目录,贴了, 标签。将固定链接加入收藏夹。