rabbitmq-сервер начинает терять данные через длительные очереди

В windows при использовании rabbitmq-server startstopкоманд / удаляются данные из длительных очередей RabbitMQ. Кажется, очереди создаются заново, когда я запускаю сервер RabbitMQ.

Если я использую rabbitmqctl stop_app/start_app, я не теряю никаких данных. Почему?

Что произойдет, если мой сервер пойдет вниз, и как я могу быть уверен, что я не потеряю данные, если это произойдет?

2 ответа

  1. Недостаточно сделать очереди долговечными. Вероятно, вам также потребуется объявить exchange долговечным, а также отправлять «постоянные» сообщения.

    В Java вы будете использовать:

    channel.basicPublish("", "sample_queue",
            MessageProperties.PERSISTENT_TEXT_PLAIN, // note that this parameter is not null!
            message.getBytes())
    
  2. проблема конфигурации: я запускал rabbitmq из каталога RabbitMQ sbin. Я повторно установил rabbitmq и добавил rabbitmq в службы windows. Теперь проблема потери данных была решена на моем компьютере. При запуске / остановке службы windows rabbitmq не теряет данных