Я нахожусь в проекте, где мне нужно заменить собственного брокера сообщений и, как правило, использовать RabbitMQ.
В то время как большинство вариантов использования могут быть охвачены, есть один сценарий, в котором я пока не уверен, как он может это сделать.быть обработано:
У проприетарного брокера есть режим, когда сообщения доставляются каждому подписчику по теме, но впоследствии они не удаляются.Если подписчик переподключится и / или запустится новый, он должен получить все сообщения, которые находятся там снова.Только когда сброс / сброс темы запускается вручную, сообщения должны быть удалены.
Вариант использования - это некоторая база данных in-memory, которая заполняется при запуске системы из файла, созданного, скажем, ночью.Сообщения содержат дельты к тому, что произошло с момента создания файла.Если модуль выходит из строя и перезапускается (или добавляется новый экземпляр), он читает файл и все сообщения, чтобы воссоздать последнее состояние.
Когда создается новый файл для заполнения в памяти-db,тема сбрасывается и все сообщения отбрасываются, так как все уже есть в файле.
Есть идеи, как настроить очереди / темы для достижения чего-то подобного?Единственный хакерский способ, который я мог придумать, это как-то поиграть с подтверждением сообщений, например, просто не подтвердить доставку и т. Д. Есть какой-нибудь более чистый способ?
Я рассматриваю и других брокеров.Так что это может быть и RocketMQ, или что-то еще ...