У нас есть кластер rabbitmq, который получает сообщения от одного приложения, которые затем обрабатываются вторым приложением. Мы столкнулись с проблемой, из-за которой в нашей очереди находится большое количество «неупакованных» сообщений. Всего у нас есть три сервера, на которых запущено второе приложение, и все они перезапущены, но неупакованные сообщения не принимаются. Мы получаем ошибку, которая выглядит как проблема с нашим кодом (который мы изучаем отдельно).
Проведя некоторое исследование, мы поняли, что эти сообщения могли быть уже отправлены, но не подтверждены должным образом. Нам интересно, есть ли способ просмотреть незапакованные сообщения, аналогичные сообщениям в очереди готовности, чтобы мы могли продолжить расследование.
Мы нашли несколько вещей, которые помогли нам в этом.
Сначала мы создали очередь для сбора всех событий и держали их в очереди готовности, чтобы мы могли выяснить, что происходит. Оказалось, что один производитель отправляет неверные сообщения. Мы закрыли этого производителя и наблюдали, что все новые сообщения выглядят хорошо и обрабатываются.
Во-вторых, мы отключаем всех потребителей (нормально в нашей среде) на короткое время. Это привело к тому, что все сообщения переместились из неупакованного в готовый. На этом этапе мы могли просмотреть и увидеть, что все они недействительны. Поскольку они находились в очереди готовности, мы смогли очистить очередь.