2016-05-27 20 views
2

Я пытаюсь понять topology of queues и обменять MT создает в RabbitMQ.RabbitMQ топология, созданная MassTransit

Я не могу получить эти два заявления:

  • мы генерируем обмен для каждой очереди, так что мы можем сделать прямой посылает в очередь. он связан как обмен разветвлением (речь идет о отправке или публикации?)

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

Зачем же MT нужно отправить прямые сообщения? Связано ли это с control queues, используемым внутри фирмы?

Также не упоминается о dead letter queue, означает ли это, что MT не поддерживает один из них? Упс, посмотрел некстати. Это here.

+0

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

+0

Эта страница нуждается в обновлении. –

+0

@ChrisPatterson Как только мы только начали смотреть на MT, я собираюсь беспокоить вас больше вопросов =) –

ответ

2

Michael Aldworth подробно описал это в своем превосходном сообщении в блоге MassTransit Send vs. Publish.

По существу, для каждой конечной точки MT вы получаете пару очереди обмена, которая названа в честь значения параметра в конфигурации конечной точки. Темы, с другой стороны, - это обмены RabbitMQ, названные после полного имени типа сообщения.

Опубликовать

Вы отправляете сообщение в этой теме, то есть в обмене типа сообщения. MassTransit создает привязку между обменом типа сообщения и обменом именами имен при запуске. Таким образом, подписки работают на уровнях RabbitMQ. Издатель никогда не знает, кто будет получать опубликованное сообщение, если кто-нибудь вообще.

Publishing

Отправить

При отправке, однако, необходимо указать адрес приемника. Делая это, вы поручаете MassTransit доставлять сообщение непосредственно в обмен имен очередей. Здесь нет привязки обмена сообщениями и обмена имен имен в очереди. Таким образом, сообщение будет доставлено, даже если нет потребителя для этого типа сообщения в целевой службе. В таком случае сообщение будет перемещено в очередь с ошибкой (queue-name_Skipped).

enter image description here

+0

Да. Уже прочитал это =) –

+1

@PavelVoronin Я ожидал этого, но я подумал, что было бы неплохо иметь его здесь также :) Будет ли обновлять документы тоже ... –