Нужны ли мне привязки rabbitmq для прямого обмена?

У меня работает сервер rabbit mq с одним прямым обменом, через который проходят все мои сообщения. Сообщения направляются в отдельные непостоянные очереди (они могут длиться пару часов). Я только начал читать о привязках очередей к биржам, и я немного озадачен тем, нужно ли мне связывать свои очереди с биржей или нет. Я пользуюсь пика basic_publish а также consume функции, так может быть, это подразумевается? Не совсем уверен, просто хочу понять немного больше.

Спасибо

3 ответа

Решение

Всегда. На самом деле, даже если очереди являются строго объектом на стороне потребителя, они должны быть объявлены и связаны с прямым обменом производителями в момент создания обмена.

Если вы используете обмен по умолчанию для прямой маршрутизации (exchange = ''), то вам не нужно объявлять никаких привязок. По умолчанию все очереди привязаны к обмену по умолчанию. Пока ключ маршрутизации точно совпадает с именем очереди (и очередь существует), обмен по умолчанию iw

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

Так работает любой брокер amqp, издатель публикует сообщение для обмена с каким-либо ключом, а брокер amqp (RabbitMq) направляет это сообщение от обмена в те очереди, которые связаны обменом с данным ключом.

Однако не обязательно объявлять и связывать очередь в издателе. Вы можете сделать это в подписчике, но убедитесь, что вы запустили своего подписчика, прежде чем запускать своего издателя.

Если вы думаете, что ваши сообщения направляются в очередь без привязок, то вы что-то упускаете.

Другие вопросы по тегам