Отправить на несколько хостов RabbitMQ с MassTransit - PullRequest
0 голосов
/ 21 апреля 2020

Я использую MassTransit in. NET приложение с RabbitMQ. Он работает как надо, я настроил и зарегистрировал управление шиной MassTransit в io c, и теперь я могу отправлять сообщения в мой экземпляр RabbitMQ и использовать их.

Теперь мне нужна возможность отправить сообщение другому экземпляр RabbitMQ. Как мне это сделать? Мне не нужно принимать сообщения от этого другого RabbitMQ, мне нужно только отправить туда что-то.

Я пытался внедрить ISendEndpointProvider и использовать GetSendEndpoint с URI моего другого экземпляра RabbitMQ, но это, похоже, не работает. У меня нет ошибок, но мой другой RabbitMQ не получает никаких сообщений, когда я пытаюсь отправить их таким образом. Документация MassTransit ничего не говорит о подключении к нескольким хостам.

Спасибо за все предложения.

1 Ответ

0 голосов
/ 21 апреля 2020

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

MassTransit не требует контейнера, поэтому вы можете просто создать / запустить и утилизировать / остановить второй экземпляр с жизненным циклом вашего приложения.

...