我在云上有一个RabbitMQ实现的队列,我编写了一个Node.JS接收器和发送器,它基本上会从队列发送和接收消息。 我基本上打了队列的uri并创建了一个连接。
我的问题是:由于我的接收器位于防火墙之后而不是任何公共IP,因此队列如何将消息发送到我的队列?它用于将消息发布到队列的技术是什么?我的接收器是否不断轮询队列?
答案 0 :(得分:0)
由于我没有找到这个问题的任何答案,这是我根据RabbitMQ文档的观察结果。
在大多数应用程序中,当队列不在系统之外且可以访问时,实现观察者模式是正确的想法。
在我的情况下,当队列在系统外(在云端)时,接收器代码会轮询队列中的任何消息,以下来自RabbitMQ站点的示例代码确认了这一点。
while (true) {
QueueingConsumer.Delivery delivery = consumer.nextDelivery();
String message = new String(delivery.getBody());
System.out.println(" [x] Received '" + message + "'");
}
可能还有其他一些相同逻辑的实现。