RabbitMQ中的消息接收方式如何工作

时间:2013-02-19 07:48:45

标签: jms rabbitmq message-queue mom

我在云上有一个RabbitMQ实现的队列,我编写了一个Node.JS接收器和发送器,它基本上会从队列发送和接收消息。 我基本上打了队列的uri并创建了一个连接。

我的问题是:由于我的接收器位于防火墙之后而不是任何公共IP,因此队列如何将消息发送到我的队列?它用于将消息发布到队列的技术是什么?我的接收器是否不断轮询队列?

1 个答案:

答案 0 :(得分:0)

由于我没有找到这个问题的任何答案,这是我根据RabbitMQ文档的观察结果。

在大多数应用程序中,当队列不在系统之外且可以访问时,实现观察者模式是正确的想法。

在我的情况下,当队列在系统外(在云端)时,接收器代码会轮询队列中的任何消息,以下来自RabbitMQ站点的示例代码确认了这一点。

while (true) {
    QueueingConsumer.Delivery delivery = consumer.nextDelivery();
    String message = new String(delivery.getBody());

    System.out.println(" [x] Received '" + message + "'");
}

可能还有其他一些相同逻辑的实现。