Каков наилучший способ объединения очередей RabbitMQ с использованием библиотеки Python pika? - PullRequest
0 голосов
/ 23 февраля 2020

Мне дано X очередей RabbitMQ. Некоторые очереди содержат дубликаты сообщений (например, сообщение хранится в очереди A, а также в очереди B).

Я пытаюсь достичь одной вещи: обработать все сообщения из очередей «ввода» (я сделал потребителю, который подключается к этим очередям), удалите дубликаты сообщений на go и отправьте данные результатов в одну очередь вывода.

Какой самый быстрый и эффективный способ сделать это?

Насколько я знаю, свойство AMQP message_id является необязательным, поэтому я должен реализовать какое-то сравнение "увиденных" сообщений с вновь поступившими сообщениями для достижения моей цели.

Мне пришло в голову хеширование сообщений, но, поскольку я относительно новичок в алгоритмах, я не уверен, какую функцию использовать и на чем сосредоточиться.

Ответы [ 2 ]

1 голос
/ 26 февраля 2020

Я закончил хэшированием тела сообщения с использованием SHA1 и сохранением sh просмотренных сообщений. Сообщения, которые не были просмотрены, перенаправляются в очередь результатов, а уже просмотренные отбрасываются.

0 голосов
/ 25 февраля 2020

Вы можете преобразовать оба сообщения в JSON, если это возможно, и сравнить их. Один из постов, к которым я пришел для Json сравнения Как сравнить два JSON объекта с одинаковыми элементами в разном порядке, равном?

...