Я ищу, чтобы начать с функции в моем текущем приложении, которое использует MassTransit с RabbitMQ в качестве поставщика сообщений. Мне интересно, какие рекомендуемые методы могут быть использованы для создания артефактов RabbitMQ, которые MassTransit требует как часть моего установочного скрипта? Я обеспокоен тем, что если система не будет поднята в правильном порядке, сообщения могут быть опубликованы до того, как мой потребитель будет поднят и начнет подписку, что может привести к некоторым сообщениям.Рекомендуемый подход к созданию артефактов RabbitMQ при развертывании приложения на основе MassTransit
ответ
По нашему опыту мы развертываем службы до развертывания любых инициирующих приложений (таких как открытый API, запланированный триггер и т. Д.), Которые будут отправлять сообщения в любую из точек входа службы. Мы делаем это для обеспечения того, чтобы все настройки, конфигурации и т. Д. Были такими, как ожидалось, и чтобы проверить конфигурацию таких вещей, как RabbitMQ, кластеризация и т. Д.
Я настоятельно рекомендую этот подход, поскольку он дает время для работы просматривать и понимать новую архитектуру, так как вы не сразу решаете проблемы программирования и можете сосредоточиться на настройке и настройке.
Мы также используем Fooidity
для развертывания кода и сохранения нового поведения, пока оно не будет включено для использования пользователем. Используя функцию переключения, нет никаких шансов на то, что какой-либо публичный пользователь попадет в конечную точку, пока не будет готов к использованию.
We never попытайтесь создать сценарий среды и предварительно настроить очереди, обмены и т. Д., Поскольку он просто закручивается, и мы заканчиваем сброс виртуального хоста, чтобы MT настроил его правильно. Я не говорю, что это невозможно, проще всего настроить MT.