1) Разветвленный обмен направляет все сообщения во все связанные очереди.Таким образом, ответ на ваш первый вопрос зависит от того, чего вы хотите достичь.Если вы хотите, чтобы каждый потребитель получал каждое сообщение, используйте обмен фантазиями, создайте очередь для каждого потребителя, привяжите его к обмену.Позволить каждому потребителю исключительно использовать сообщения из своей очереди.
Если, с другой стороны, вы хотите, чтобы каждое сообщение использовалось только один раз, используйте одну очередь и разрешите всем потребителям получать сообщения из нее.При этом будет использоваться циклическое поведение по умолчанию: потребители по очереди и каждое сообщение потребляется ровно один раз.
2) Если вы используете первый подход, вы можете разрешить имена очередиавтоматически генерироваться для каждого потребителя при создании очереди.Это имя будет точным и уникальным.
3) RabbitMQ поддерживает временных очередей , которые удаляются, когда потребитель уходит.Если вам требуется, чтобы каждое сообщение использовалось хотя бы один раз, обязательно объявите обмен мертвыми буквами для сообщений, которые не могли быть использованы отправившимся потребителем.Это позволит вам перенаправить такие сообщения.