в MSMQ или нет в MSMQ?(или таблица SQL в качестве очереди) - PullRequest
12 голосов
/ 30 ноября 2010

У меня есть распределенная система, в которой будет 1 SQL Server, 1-n серверов обработки и 1-n поставщиков данных (аппаратные устройства в сети).Предоставляемые данные потребуют обработки перед переходом в структуру реляционной БД - выполняемой серверами обработки (в качестве служб Windows - .net-код для анализа данных, их обработки и вставки в реляционную структуру.)
КомуЧтобы справиться с потенциальной нагрузкой и не замедлять работу поставщиков данных, я хочу создать очередь, но я не уверен, что хочу добавить сложность сервера MSMQ к смеси.Есть ли хорошая альтернатива MSMQ, например, использовать DB (плоский стол) в качестве очереди?Обеспечивает ли .NET какую-либо готовую поддержку для очередей БД или есть еще один вариант для надежной организации очередей?
Спасибо

РЕДАКТИРОВАТЬ: (29 ноября, 23:30)
звучит так, как если бы SQL Service Broker (SSB) справился с задачей.
http://www.netframeworkdev.com/windows-communication-foundation/service-broker-vs-msmq-as-reliable-queueing-mechanism-63981.shtml

РЕДАКТИРОВАТЬ: (30 ноября, 7:45)
НайденоЕще одна очень полезная ссылка на эту тему:
http://social.msdn.microsoft.com/Forums/en-US/sqlservicebroker/thread/52687510-0852-44f3-bfcd-83610d1c1b9a
Я также изучаю максимальный / минимальный размер данных, которые будут предоставлены.Вдобавок ко всему кто-нибудь знает максимальный размер, поддерживаемый MSMQ и / или SSB?
MSMQ: размер сообщения 4 МБ
SSB: размер сообщения 2 ГБ

РЕДАКТИРОВАТЬ: (30nov, 8; 15:00)
Отличное сравнение между MSMQ и SSB здесь:
Хорошая стратегия для очереди сообщений?

Ответы [ 2 ]

4 голосов
/ 30 ноября 2010

Я бы использовал MSMQ, он не добавляет такой сложности, и резервное копирование сообщений настолько легко, что обработка может продолжаться даже после перезагрузки системы.Вы можете использовать что-то вроде SSB.

2 голосов
/ 30 ноября 2010

Из двух вариантов MSMQ на самом деле более упрощенный.Если вам нужна возможность изменить приоритеты работы или если обработчики выбирают только определенные типы заданий, поставленных в очередь, вы не можете использовать MSMQ.Если вам не нужны какие-либо из этих наворотов, MSMQ идеально подходит для использования с .NET.

...