Меня попросил мой руководитель группы расследовать MSMQ как вариант для новой версии нашего продукта. Мы используем SQL Service Broker в нашей текущей версии. Я сделал свою долю экспериментов и Googling, чтобы найти, какой продукт лучше для моих нужд, но я думал, что попрошу лучший сайт, который я знаю для программирования ответов.
Некоторые сведения:
- Наш клиент - это код .NET 1.1 и 2.0; это сообщение, из которого будет отправлено сообщение.
- Цель в экземпляре SQL Server 2005. Все сообщения в конечном итоге становятся обновлениями или вставками базы данных.
- Мы отправим несколько обновлений, которые должны рассматриваться как транзакция.
- Мы должны обладать отличной способностью сообщения; никакие сообщения не могут быть потеряны.
- Мы должны быть асинхронными и принимать сообщения, даже если целевой сервер SQL не работает.
- Разработка собственного решения для очередей - это не вариант; мы небольшая команда.
Вещи, которые я обнаружил до сих пор:
- Оба MSMQ и SQL Service Broker могут выполнять эту работу.
- Похоже, что брокер услуг быстрее для транзакционных сообщений.
- Service Broker требует, чтобы сервер SQL работал где-то, тогда как MSMQ нуждается в любой сконфигурированной машине Windows, которая где-то работает.
- MSMQ выглядит лучше/быстрее/проще для настройки/запуска в кластерах.
Я что-то упустил? Здесь есть явный победитель? Любые мысли, опыт или ссылки будут оценены. Спасибо!
EDIT: мы закончили тем, что придерживались сервис-брокера, потому что у нас есть пользовательская структура базы данных, используемая в некоторых наших клиентских кодах (мы лучше обрабатываем транзакции). Этот код захватил SQL для транзакций, но нет. Клиентский код также был все версии 1.1.NET, поэтому нам пришлось бы обновить весь клиентский код. Спасибо за вашу помощь!