Мне нужно решение Enterprise Service Bus / Message Queuing для функций издателя / подписчика. Я знаю, что существует МНОГО ... MSMQ, MS Series, RabbitMQ, NServiceBus и т. Д. И т. Д. И т. Д.
Мое единственное требование состоит в том, что в решении для общего хостинга единственная зависимость, которая, как я могу гарантировать, будет существовать, - это SQL 2005 и более поздние версии ... это приводит меня непосредственно к SQL Service Broker.
Если это звучит так, будто я пытаюсь втиснуть функциональность ESB в SSB ... Полагаю, я ...
У меня вопрос: знает ли кто-нибудь об .NET API или платформе, которая находится поверх SQL Service Broker и уже предоставляет большую часть сантехники?
Если бы я использовал чистый ADO.net, я мог бы добавлять элементы в очереди, вызывая хранимую процедуру, но тогда:
- Что касается характера разговоров, могу ли я вести один разговор для каждого сообщения?
- Если да, потеряю ли я последовательную обработку сообщений?
- Как мне получать сообщения (я знаю синтаксис приема в t-SQL), могу ли я повторно вызывать хранимую процедуру в цикле сообщений, чтобы попытаться получить сообщение из очереди?
- Или я буду ЖДАТЬ никогда? Сохранять соединение открытым и выполнять хранимую процедуру вечно?
- SQL Service Broker не поддерживает монологи, но я читал, что они могут быть реализованы ...
Именно такие вопросы заставляют меня сожалеть о существовании решения .net, которое уже справилось бы со всем этим.