NServiceBus с транспортом сообщений SQL Server - PullRequest
5 голосов
/ 07 мая 2010

Есть ли способ использовать SQL Server в качестве физического транспорта сообщений вместо встроенного транспорта сообщений MSMQ с NServiceBus?

Спасибо

Ответы [ 5 ]

3 голосов
/ 09 августа 2013

На NServiceBus 4.0 теперь вы можете просто использовать Sql Server в качестве транспортного механизма , поэтому вам не нужно реализовывать ITransport и тому подобное.

3 голосов
/ 20 сентября 2011

В NServiceBus 3.0 мы сделали подключение вашего собственного транспортного механизма намного проще по сравнению с 2.6. В 2.6 вы бы реализовали интерфейс ITransport, который огромен. В версии 3.0 вам потребуется только реализовать ISendMessages и IReceiveMessages

https://github.com/NServiceBus/NServiceBus/blob/master/src/unicast/NServiceBus.Unicast.Queuing/ISendMessages.cs

https://github.com/NServiceBus/NServiceBus/blob/master/src/unicast/NServiceBus.Unicast.Queuing/IReceiveMessages.cs

3 голосов
/ 20 сентября 2011

Извините за ответ на такую ​​старую тему, но есть проект шины сообщений .Net, использующий SQL-сервер в качестве транспорта сообщений: NGinn.MessageBus (в http://code.google.com/p/nginn-messagebus/). Это мой любимый проект с открытым исходным кодом, созданный специально для приложений, которые уже используют SQL Server. Проект достаточно зрелый, чтобы использовать его в производстве. Более подробную информацию можно найти на сайте проекта.

3 голосов
/ 07 мая 2010

SQL Server содержит встроенный обмен сообщениями в виде Service Broker .Это дает вам эффективный, высокоскоростной, высокопроизводительный, асинхронный и надежный транспорт для обмена сообщениями между экземплярами SQL Server.Тот факт, что он предназначен только для экземпляров SQL, не так плох, как кажется, учитывая, что SQL Server Express поддерживает Service Broker, и я знаю развертывания, в которых используются десятки, сотни экспресс-экземпляров, географически распределенных, для обмена сообщениями с центральными экземплярами SQL более высокого выпуска.

Основная проблема - отсутствие API C # /. Net, нет поддержки ни каналов WCF, ни NServiceBus.Существуют различные проекты, пытающиеся решить эту проблему, с большим или меньшим успехом.В конечном итоге это будет зависеть от того, что является движущим фактором для принятия решения: интеграция с существующей шиной обмена сообщениями, такой как NServiceBus, или необработанная производительность и надежность за счет зависимости от собственной шины sQL Server.

2 голосов
/ 08 мая 2010

Возможно, вы захотите внедрить пользовательский ITransport для этого.

...