0

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

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

如果我的服务器出现故障会发生什么情况?我如何确定我不会丢失数据?

4

2 回答 2

1

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

于 2017-01-20T11:44:35.363 回答
0

使队列持久是不够的。可能您还需要将交换声明为持久的以及发送“持久”消息。

在 Java 中,您将使用:

channel.basicPublish("", "sample_queue",
        MessageProperties.PERSISTENT_TEXT_PLAIN, // note that this parameter is not null!
        message.getBytes())
于 2016-12-28T11:57:36.367 回答