RabbitMq 绑定
RabbitMq bindings
我意识到我可能做错了 - 但这是你纠正我的机会!
我有一个设备 - id 为... 60。
设备 60 由 Master 2 处理。
我从设备收到一条消息,消息头中是它的 ID。但在这个阶段,我的程序不知道,也不关心设备分配给哪个主设备。
我想将设备 60 的所有消息放入名为 "Device60" 的 RabbitMq 队列中,此时可能没有任何内容在监听该队列。这就是为什么我不能使用 exchange b/c 的原因,如果没有任何内容在监听,那么消息就会被丢弃。我需要将消息保留在 Queue60 中,直到它们被处理。
当 Master 2 上线时,它有一个列表,其中包含它将处理的 600 个设备。所以它在那个时候可以创建绑定。
如何执行队列到队列绑定以将 "Device60" 中的消息分发到 "Master2" 队列?
如果我处理这一切都是错误的,请帮助我理解基于 AMQP 的 RabbitMq 实现的 'correct' 方法
要求是任何设备都可以发送消息,并且它们将按顺序保存,直到有东西上线并将它们拉入。
您可以使用路由键,方法是创建一个交换器和一个名为 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);
希望对您有所帮助。
我意识到我可能做错了 - 但这是你纠正我的机会!
我有一个设备 - id 为... 60。 设备 60 由 Master 2 处理。
我从设备收到一条消息,消息头中是它的 ID。但在这个阶段,我的程序不知道,也不关心设备分配给哪个主设备。
我想将设备 60 的所有消息放入名为 "Device60" 的 RabbitMq 队列中,此时可能没有任何内容在监听该队列。这就是为什么我不能使用 exchange b/c 的原因,如果没有任何内容在监听,那么消息就会被丢弃。我需要将消息保留在 Queue60 中,直到它们被处理。
当 Master 2 上线时,它有一个列表,其中包含它将处理的 600 个设备。所以它在那个时候可以创建绑定。
如何执行队列到队列绑定以将 "Device60" 中的消息分发到 "Master2" 队列?
如果我处理这一切都是错误的,请帮助我理解基于 AMQP 的 RabbitMq 实现的 'correct' 方法
要求是任何设备都可以发送消息,并且它们将按顺序保存,直到有东西上线并将它们拉入。
您可以使用路由键,方法是创建一个交换器和一个名为 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);
希望对您有所帮助。