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

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

Спасибо


person tuck    schedule 15.01.2016    source источник


Ответы (3)


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

person pbhowmick    schedule 15.01.2016
comment
вроде работает без привязок, проблем пока не вижу. Что-нибудь, с чем я столкнусь в будущем? - person tuck; 15.01.2016
comment
Это сводится к лучшей практике. Это не ограничивается только прямым обменом. - person pbhowmick; 19.01.2016
comment
Предположим, что издатель начинает публикацию до того, как какие-либо потребители подключатся к сети и объявят и привяжут очереди к этому обмену. В этом случае сообщения могут быть отброшены или подвергнуты DLO. - person pbhowmick; 19.01.2016

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

person Shamiul    schedule 05.01.2017

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

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

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

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

person mannuscript    schedule 18.01.2016