首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RabbitMQ工作队列:在发送程序之后启动使用者[Java]

RabbitMQ工作队列:在发送程序之后启动使用者[Java]
EN

Stack Overflow用户
提问于 2013-08-29 18:46:14
回答 2查看 1.5K关注 0票数 1

我对使用RabbitMQ作为消息队列协议非常陌生,我已经编写了RabbitMQ教程中给出的发送者和消费者工作队列的代码。

[链接:http://www.rabbitmq.com/tutorials/tutorial-two-java.html ]

当我们在发送者之前启动消费者时,上面的事情运行得很好。但是,如果我们在运行发送器之后启动消费者,就会出现问题。这些消息都不会被那些在运行发送器之后启动的消费者使用。在研究了RabbitMQ的架构和AMQP相关的东西之后,它似乎相当困难。

1]有没有可能在发送者之后启动消费者,在发送者接收到队列中的消息后启动消费者?

2]如果这个东西是怎么被done.Is的,有没有什么技巧可以做到这一点?

EN

回答 2

Stack Overflow用户

发布于 2013-08-29 19:02:47

是的,这是可能的。确保在将auto-delete设置为false的情况下声明队列。一旦最后一个消费者取消订阅,如果auto-delete设置为true,那么队列将被删除,并且当您的发送者将消息推送到队列中时,这些消息将丢失。如果auto-delete设置为false,那么在您的消费者取消订阅之后,队列将继续存在,并且您的发送者将能够将消息推送到队列而不会丢失消息。

有关队列的更多信息,请访问http://www.rabbitmq.com/tutorials/amqp-concepts.html#queues

票数 2
EN

Stack Overflow用户

发布于 2013-08-29 19:08:10

我认为在第一种情况下(首先启动消费者),消费者正确地创建/注册了它想要在RabbitMQ服务器上侦听的队列。因此,当发送者发送时,它能够接收到它。

在第二种情况下,可能发生的情况是发送者试图发送到一个不存在/未创建的队列,并转到默认/死信。

我建议您打开RabbitMQ管理控制台,查看队列是否创建正确。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18508853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档