Я новичок в NServiceBus, пытаюсь внедрить обмен сообщениями в решение WCF / RPC.
Из-за архитектурных ограничений и накладных расходов (использование памяти и процессора уже велико) ИТ-операции не разрешат MSDTC.(Я также стремлюсь избежать 2PC FWIW).Мне также требуются сообщения по протоколу http, поэтому мост NSB выглядит как отличное решение.
На основе этих сообщений ( how-i-избежать-двухфазный коммит и расширяя-nservicebus-предотвращение двухфазных фиксаций ) мне кажется, что возможно использовать NSB с отключенным DTC.Звучит так: EventStore удается избежать 2PC так же, как я хочу настроить NSB, но в данный момент я просто хочу заставить NSB работать, а не добавлять источники событий в микс.
Вопросы:
- Есть ли примеры настройки NSB для работы таким образом?Я очень рад добавить дополнительную сложность (пользовательский обработчик сообщений с локальным хранилищем состояний сообщений) - без 2PC на самом деле нет другого варианта.Я уже знаю об этом примере ( IdempotentConsumer ), но тестовые проекты для этого репо не содержат кода.Было бы еще полезнее, если бы был пример использования хранилища nosql.
- Нужно ли мне менять мост NSB, чтобы не было кода DTC?Я предполагаю, что транзакции без моста только против локальной очереди, но процесс, который потребляет локальную очередь, очевидно, должен будет кодироваться, чтобы избежать 2PC.Правильно?
- Существуют ли какие-либо другие полезные ресурсы / сообщения об использовании NSB без MSDTC?Решение ( how-i-avo-two-phase-commit ) кажется не слишком сложным, но, учитывая, что я только начинаю с NSB, было бы здорово найти быстрый старт для этого ...
- Я бы подумал, что это будет распространенный сценарий - но, похоже, мало написано о том, как избежать MSDTC, все еще используя NSB.Конечно, есть другие, которые используют шину сообщений, но не могут использовать MSDTC ... Есть еще один очевидный способ, который я пропустил?
спасибо