【发布时间】:2018-09-21 01:00:32
【问题描述】:
我正在浏览Rabbitmq官方网站给出的AMQP的documentation。 它说
队列持久性 持久队列被持久化到磁盘,因此可以存活 经纪人重新启动。不持久的队列称为瞬态队列。不是 所有场景和用例都要求队列是持久的。
队列的持久性不会使消息路由到该队列 队列持久。如果经纪人被撤下然后又恢复, 持久队列将在代理启动期间重新声明,但是,仅 持久性消息将被恢复。
但是,当消息代理崩溃时,我对以下情况感到困惑:-
- 消息由生产者传递到 Message Exchange,但不会路由到标记为持久的队列。
- 消息由生产者传递到 Message Exchange,然后再路由到标记为持久的队列,但消息在队列中,不被消费者消费。
- 消息由生产者传递到 Message Exchange,然后再路由到标记为持久的队列,但消息在队列中并由消费者消费,但消费者没有向队列发送确认。
在上述所有情况下,消息是否会在下次启动rabbit-mq服务器时可用?
此外,文档对普通消息和持久消息进行了区分,因为只有持久消息才会被恢复。两种消息类型有什么区别?
提前致谢。
【问题讨论】:
标签: rabbitmq amqp messagebroker