有关使用RabbitMQ的一些基本问题?

时间:2018-12-18 21:08:07

标签: rabbitmq rabbitmq-exchange

阅读有关什么是Rabbit以及做什么的文档后,我有一些常见问题:

情况是:生产者将一条消息发送给某些消费者(订户)。

对于以下列表的所有内容,使用内容以及进一步挖掘的内容,我需要简短说明

  1. 如何清除队列,并在之后停止向消费者发送消息 具体时间/日期
  2. 我可以包含到已确认的消息用户的数据,例如JSON吗?
  3. 该数据存储在哪里?在同一队列中?
  4. 如何过滤已确认的邮件,然后清除队列?
  5. 如何在特定时间/日期后清除队列
  6. 如果没有一个消费者否确认消息会发生什么,将它们存储多长时间?
  7. 消费者是否在队列中订阅还是可以在交易所订阅?
  8. 使用一对多模型发送消息,如何设置谁 首先/最后或同时获得消息here described that,但不清楚是在客户端还是在服务器端?
  9. 如果没有使用者,如何重新推送消息到另一个队列并关闭 当前?
  10. 每个消费者都有自己的队列吗?

在此先感谢您和任何评论!

1 个答案:

答案 0 :(得分:2)

如果您可以详细说明一些问题并包括用例,我可以编辑答案。

1-只要消费者还活着,rabbitmq就会向消费者发送传入消息。如果希望消息/队列在一段时间后过期,则可以为它们提供TTL。 https://www.rabbitmq.com/ttl.html

2-您的意思是什么?

3-Rabbitmq将数据存储在mnesia数据库中。 https://www.rabbitmq.com/persistence-conf.html https://www.rabbitmq.com/relocate.html

4-“ filterig”消息和清除队列是什么意思?成功使用的消息立即从队列中删除。

5-您可以将ttl放入队列或将队列声明为自动删除 https://www.rabbitmq.com/ttl.html https://www.rabbitmq.com/queues.html

6-如果消费者不发送确认消息给兔子,则只要内存已满或兔子不可用,消息就不会被确认。

7-两者。使用者可以创建自己的队列并将其绑定到交换,也可以从现有队列中使用。这取决于用例。

8-如果不知道一对多的含义,很难回答这个问题。直接交换或扇出或其他,多少个队列等。

但是,在Rabbitmq中,默认情况下按发布顺序对邮件进行排序。

根据您共享的链接,rabbitmq首先将消息发送给优先级更高的使用者,直到使用者的预取计数(使用者的未确认消息)成为限制为止。

9-您需要在代码中处理这种情况。或者,您可以将Management ui与Shovel插件一起使用。

https://www.rabbitmq.com/management.html https://www.rabbitmq.com/shovel.html

10-同样,这取决于设计和用例。