RabbitMQ для имитации обмена темами с прямым обменом - PullRequest
0 голосов
/ 23 марта 2011

Есть ли способ, которым я могу иметь прямой обмен, имитирующий обмен темой (я знаю, что можно получить обратное: см. Здесь ), но мой пример использования здесь заключается в том, что я уже развернул прямоеобмен с большим количеством очередей, каждая из которых имеет ключ маршрутизации mykeyprefix.queue_name_here, и чего я пытаюсь добиться, так это иметь отдельную очередь, в которую все сообщения из всех других очередей попадают для последующего анализа.

1 Ответ

0 голосов
/ 24 марта 2011

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

Учитывая, что ваше требование точно удовлетворяется с помощью обмена темами, мне любопытно, почему вы не можете просто использовать это.Вашим производителям будет все равно (поскольку они просто отправляют сообщения на Exchange), а вашим потребителям не нужно будет меняться (поскольку они просто извлекают из очереди, которая может быть связана с любым типом Exchange).Что касается миграции, вы можете связать очереди с обеими биржами, а затем отсоединить их от старого прямого обмена.Когда вы перемещаете каждую очередь, вы можете удалить прямой обмен, оставив вам только тот хороший обмен темами, который вам действительно нужен.

...