rabbitmq-server 开始通过持久队列丢失数据
rabbitmq-server start losing data over durable queues
在 windows 上,当我使用 rabbitmq-server
start
/stop
命令时,RabbitMQ 持久队列上的数据被删除。当我启动 RabbitMQ 服务器时,似乎重新创建了队列。
如果我使用 rabbitmqctl
stop_app
/start_app
,我不会丢失任何数据。为什么?
如果我的服务器出现故障会发生什么情况?如果发生故障,我如何确定我不会丢失数据?
使队列持久化是不够的。可能您还需要将交换声明为持久的以及发送 'persistent' 消息。
在 Java 中,您将使用:
channel.basicPublish("", "sample_queue",
MessageProperties.PERSISTENT_TEXT_PLAIN, // note that this parameter is not null!
message.getBytes())
配置问题:我从 rabbitmq sbin 目录启动 rabbitmq。我 re-installed rabbitmq 并将 rabbitmq 添加到 windows 服务。现在数据丢失的问题在我的电脑上解决了。当我 start/stop windows 服务时,rabbitmq 没有丢失任何数据
在 windows 上,当我使用 rabbitmq-server
start
/stop
命令时,RabbitMQ 持久队列上的数据被删除。当我启动 RabbitMQ 服务器时,似乎重新创建了队列。
如果我使用 rabbitmqctl
stop_app
/start_app
,我不会丢失任何数据。为什么?
如果我的服务器出现故障会发生什么情况?如果发生故障,我如何确定我不会丢失数据?
使队列持久化是不够的。可能您还需要将交换声明为持久的以及发送 'persistent' 消息。
在 Java 中,您将使用:
channel.basicPublish("", "sample_queue",
MessageProperties.PERSISTENT_TEXT_PLAIN, // note that this parameter is not null!
message.getBytes())
配置问题:我从 rabbitmq sbin 目录启动 rabbitmq。我 re-installed rabbitmq 并将 rabbitmq 添加到 windows 服务。现在数据丢失的问题在我的电脑上解决了。当我 start/stop windows 服务时,rabbitmq 没有丢失任何数据