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