RabbitMq绑定

时间:2016-06-15 19:48:03

标签: rabbitmq amqp

我意识到我可能做错了 - 但是你有机会纠正我!

我有一个设备 - ID为... 60。 设备60由Master 2处理。

我从设备收到一条消息,并在消息标题中显示其ID。但是在这个阶段,我的程序并不知道,或者关心设备的主控分配。

我想将设备60的所有消息放入名为" Device60"的RabbitMq队列中。此时,没有任何东西可能正在侦听该队列。这就是为什么我不能使用交换b / c,如果什么都没有听,那么消息将被删除。我需要将这些消息保留在Queue60中,直到它们被处理完毕。

当Master 2上线时,它会列出600个将要处理的设备。所以它在那时可以创建绑定。

如何进行队列排队绑定以在" Device60"中分发消息?到了#2; Master2"队列?

如果我接近这一切都错了,请帮助我理解'正确的'基于AMMP的RabbitMq实现的方式

要求是任何设备都可以发送消息,并且它们将按顺序保存,直到某些内容上线并将其拉入。

1 个答案:

答案 0 :(得分:1)

您可以使用路由密钥,通过创建交换和绑定到交换机的名为Device60的队列。

channel.queueBind("Device60","myexchange","device.60")

此时,您可以使用路由键发布消息。 例如:

 channel.basicPublish("myexchange","device.60",mymessage);

现在Device60将收到消息并将其存储,直到消费者在线。

对于其他设备,它是相同的:

channel.queueBind("Device50","myexchange","device.50")

channel.basicPublish("myexchange","device.50",mymessage);

我希望它有所帮助。