Можно ли гарантировать, что уникальные сообщения находятся в очереди rabbitmq?

По сути, мои потребители также являются производителями. Мы получаем начальный набор данных, и он отправляется в очередь. Потребитель берет элемент и обрабатывает его, с этого момента есть 3 возможности:

  1. Данные хорошие и ставятся в «хорошую» очередь для хранения
  2. Данные плохие и отбрасываются
  3. Данные нехорошие(пока )или плохо(еще), поэтому данные разбиваются на более мелкие части и отправляются обратно в очередь для дальнейшей обработки.

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

Я думаю, что способ предотвратить это — предотвратить попадание дубликатов в очередь. Я не могу сделать это на стороне клиента, потому что в течение часа у меня может быть много ядер, обрабатывающих миллиарды точек данных(, и каждый клиент сканирует их перед отправкой, что слишком сильно замедляет работу). Я думаю, что это нужно сделать на стороне сервера, но, как я уже говорил, данные довольно большие, и я не знаю, как эффективно исключить дубликаты.

Возможно, я прошу о невозможном, но решил попробовать. Любые идеи очень приветствуются.

9
задан Error_404 14 April 2012 в 16:11
поделиться