Ana*_*dis 7 messages ttl rabbitmq
我通过生产者向RabbitMQ发送一条正常消息,然后发送第二条消息,并将expiration属性赋值给一个值.然后使用rabbitmqctl list_queues命令我监视消息的状态.
我发现,如果我先发送一条正常的消息,然后再发一条消息expiration,那么rabbitmqctl list_queues总是会在队列中显示2条未决消息.当我消耗它们时,我只得到一个.
另一方面,如果我只发送一条消息expiration,在开始时我看到消息,然后在正确的到期时间后,我发现它被删除了.
我的问题是,第一种情况实际上是消息占用空间?或者它是一个界面错误?
我的rabbitMQ版本是:
rabbitmq-server.noarch -> 3.1.5-1.el6
the*_*yer 20
看起来您错过了有关此功能的一些文档.如果您阅读有关每条消息TTL(到期)的RabbitMQ文档,您将会注意到以下警告,以确切了解您所看到的行为(强调添加):
注意事项
虽然消费者永远不会看到过期的消息,但只有当过期的消息到达队列的头部时,它们才会被丢弃(或死信).设置每个队列TTL时,这不是问题,因为过期的消息总是在队列的头部.但是,在设置每条消息TTL时,过期的消息可以在非过期消息之后排队,直到后者消耗或过期.因此,这些过期消息使用的资源将不会被释放,并且它们将被计入队列统计中(例如队列中的消息数).
| 归档时间: |
|
| 查看次数: |
7538 次 |
| 最近记录: |