我正在通过生产者向RabbitMQ发送一条普通消息,然后发送第二条消息,并将expiration
属性分配给一个值。然后,使用rabbitmqctl list_queues
命令监视消息的状态。
我发现,如果我先发送一条普通消息,然后再发送一 strip 有expiration
的消息,则rabbitmqctl list_queues
总是向我显示2条等待队列中的消息。当我食用它们时,我只会得到一个。
另一方面,如果我只发送了一 strip 有expiration
的消息,则一开始我会看到该消息,然后在正确的到期时间之后,我发现它已被删除。
我的问题是,第一种情况实际上是消息占用空间吗?还是界面错误?
我的rabbitMQ版本是:rabbitmq-server.noarch -> 3.1.5-1.el6
最佳答案
您似乎错过了有关此功能的一些文档。如果您阅读RabbitMQ documentation on per-message TTL (expiration),则将针对您所看到的确切行为注意到以下警告(添加了强调):