Как я могу использовать NServiceBus с базой данных вместо MSMQ

Можно ли использовать NServiceBus с базой данных в качестве хранилища очередей вместо MSMQ? Если да, то с чего начать и каковы плюсы и минусы использования базы данных вместо MSMQ?


person Sean Kearon    schedule 15.01.2011    source источник


Ответы (1)


Если вы хотите использовать что-то кроме MSMQ, вам придется подключить свой собственный ITransport. Я бы взглянул на проект NSB Contrib на GitHub, там есть реализация ITransport для брокера SQL Server (обмен сообщениями).

Минусы, которые я вижу в использовании базы данных, включают затраты и накладные расходы на обслуживание. MSMQ поставляется с ОС бесплатно, и большинство администраторов имеют навыки для ее обслуживания. Как только вы попадаете в БД, вы должны заплатить за нее и найти кого-то, кто будет ее поддерживать. Все начинается хорошо, но как только вы попадаете в несколько сред и такие вещи, как кластеризация, лицензирование выходит из-под контроля.

person Adam Fyles    schedule 16.01.2011
comment
Адам - ​​спасибо за ответ. Если я правильно понял ваш ответ, использование БД для хранения очередей не является стандартным подходом? В таком случае я иду к мастеру MSMQ... :) - person Sean Kearon; 17.01.2011
comment
Да, стандартный подход заключается в использовании технологии очереди. Вы не ограничены MSMQ, но это подход по умолчанию. - person Adam Fyles; 17.01.2011
comment
подход по умолчанию для производственного профиля в nservicebus заключается в использовании хранилища сервера sql. по умолчанию для тестирования и (или точно не помню) профиля разработки используется хранилище msmq. - person Stephan Schinkel; 17.01.2011
comment
Здесь происходит некоторая путаница. Я не уверен, какова была первоначальная цель вопроса, но есть две вещи. Я полагаю, что Адам говорит об использовании базы данных SQL для хранения сообщений в качестве замены MSMQ. Это далеко не идеально, так как это даже не система очередей, поэтому реализация ITransport должна была бы постоянно ставить базу данных в очередь для новых сообщений. hacktick говорит о хранилище подписки (хранении списка очередей, которые подписываются на тип сообщения), которое по умолчанию имеет значение NHibernate+DB в производственном профиле. - person David Boike; 17.01.2011
comment
Моим первоначальным намерением было спросить о хранении сообщений в базе данных SQL, на что Адам ответил. goo.gl/xJzVL - person Sean Kearon; 24.01.2011
comment
Извините, комментарий выше должен быть таким: Моей первоначальной целью было спросить о хранении сообщений в базе данных SQL, на что Адам ответил. Я думаю, что моя мотивация задать этот вопрос была сбита с толку после прочтения о хранении информации в базе данных здесь goo.gl/xJzVL говорит, что NServiceBus позволяет настроить всех издателей для хранения своей информации в физически центральном месте, например в базе данных. Прочитав это, я представил себе центральное хранилище сообщений, а не хранилище конфигурации. Всем спасибо за разъяснения! - person Sean Kearon; 24.01.2011