Jms RabbitMQ中消息接收的工作原理

Jms RabbitMQ中消息接收的工作原理,jms,rabbitmq,message-queue,mom,Jms,Rabbitmq,Message Queue,Mom,我在云上实现了一个RabbitMQ队列,并编写了一个Node.JS receiver和sender,它基本上将从队列发送和接收消息。 我基本上点击了队列的uri并创建了一个连接 我的问题是:由于我的接收者位于防火墙后面,而不在任何公共IP上,队列如何将消息发送到我的队列?它使用什么技术将消息发布到我的队列?我的接收者是否持续轮询队列?由于我没有找到这个问题的任何答案,这是我根据RabbitMQ文档观察到的结果 在大多数应用程序中,当队列不在系统之外并且可以访问时,实现观察者模式是正确的想法 在我

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


我的问题是:由于我的接收者位于防火墙后面,而不在任何公共IP上,队列如何将消息发送到我的队列?它使用什么技术将消息发布到我的队列?我的接收者是否持续轮询队列?

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

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

在我的例子中,当队列在系统之外(在云上)时,接收方代码轮询队列中的任何消息,下面来自RabbitMQ站点的示例代码证实了这一点

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

    System.out.println(" [x] Received '" + message + "'");
}
可能还有其他一些相同逻辑的实现