rabbitmq-server开始在持久队列中丢失数据

时间:2016-12-28 11:45:45

标签: rabbitmq persistence amqp rabbitmqctl durability

在Windows上,当我使用rabbitmq-server start / stop命令时,将删除RabbitMQ持久队列上的数据。当我启动RabbitMQ服务器时,似乎重新创建了队列。

如果我使用rabbitmqctl stop_app / start_app,我不会丢失任何数据。为什么?

如果我的服务器发生故障,会发生什么情况?如果确实如此,我怎么能确定我不会丢失数据呢?

2 个答案:

答案 0 :(得分:1)

配置问题:我是从rabbitmq sbin目录启动rabbitmq的。我重新安装了rabbitmq并将rabbitmq添加到了windows服务中。现在数据丢失问题在我的电脑上解决了。当我启动/停止Windows服务时,rabbitmq不会丢失任何数据

答案 1 :(得分:0)

让队列持久是不够的。可能你还需要声明交换是持久的以及发送'持久'消息。

在Java中你将使用:

channel.basicPublish("", "sample_queue",
        MessageProperties.PERSISTENT_TEXT_PLAIN, // note that this parameter is not null!
        message.getBytes())