2008-12-01 6 views
9

Моя организация готовится к внедрению новой системы, которая является приложением asp.net. Приложение будет иметь большую очередь автономной работы, инициированную веб-сайтом. В этой очереди будут выполняться различные типы действий, в идеале - в XML-сообщениях. Подумайте о таких вещах, как уведомления по электронной почте, запланированные задачи и т. Д.ASP.NET - лучшая система очередей для нового приложения

В прошлом организация, скорее всего, использовала MSMQ для выполнения этой задачи. Однако они считают, что MSMQ является старой школой (и я частично согласен с ними), поэтому мы собираемся провести архитектурный обзор, чтобы определить «лучшее» решение.

На мой взгляд, существует несколько возможных вариантов:

1. Придерживайтесь новой реализации на последней версии MSMQ - не идеальный, а известный продукт.
2. Используйте Windows Workflow Foundation, о котором я слышал от нескольких других разработчиков, которые использовали это для этого типа вещей.
3. Разработайте собственное решение для базы данных.

У меня отсутствуют какие-либо очевидные решения? Это идеально будет продукт Microsoft, но на самом деле просто нужно работать в центре Microsoft.

Я обеспокоен следующим:
1. Простота внедрения и сопровождения
2. Раствор, который будет примерно на некоторое время
3. Способен обрабатывать хороший объем строк с данными среднего размера XML в них
4. Абсолютно надежная система очереди с быстрым обновлением (несколько процессов утилиты, вероятно, будут захватывать записи из очереди для их обработки).

+1

ВФП тег должен быть только ВФ (http://msdn.microsoft.com/en-us/netframework/aa663328.aspx). Думаю, потому что WWF является Всемирным фондом дикой природы, чтобы не путать с WWE, ранее WWF. – Bratch 2009-06-08 22:53:13

ответ

13

Чтение сообщения кажется единственной причиной, по которой вы считаете, что MSMQ не подходит, потому что кто-то считает, что это «старая школа». Я бы не подумал, что это хорошая причина не использовать его, так как похоже, что у вашей компании есть опыт работы с ним, поэтому кривая обучения не будет, и это означает легкую реализацию и обслуживание.

Плюс, MSMQ прекрасно справится со всеми проблемами, о которых вы говорили. Итак, если нет другой «реальной» причины не использовать ее, я думаю, что придерживаюсь MSMQ.

1

Вы изучили сервис-брокер в SQL Server? Это система quering, которая использует базу данных в качестве резервного хранилища.

3

Я бы предложил посмотреть в WCF, вы можете настроить его, чтобы указать постоянный, помещенный в очередь обмен сообщениями, и он использует технологию MSMQ под обложками. Абстракция/интерфейс WCF и технология должны быть в течение долгого времени.

0

У вас есть несколько вариантов:

  1. Biztalk: Он создан для гарантированной доставки сообщений и маршрутизации на корпоративном уровне. Трудно настроить, дорого, и имеет крутую кривую обучения, но как только вы включите ее, она будет твердой.

  2. MSMQ: быстрая, дешевая, как в свободной, простой в использовании и простой работе.

  3. SQL Service Broker. Это шаг вверх от MSMQ, но огромный шаг вниз от Biztalk.

Основные проблемы действительно сводятся к набору функций, который вам нужен. Biztalk в значительной степени является собственной средой разработчиков. В то время как MSMQ требует, чтобы вы построили все вокруг.

+0

У SSB есть немало недостатков, хотя - некоторые большие в моих глазах. 1) сложные проблемы с масштабом, связанные с обработкой ручек разговора. 2) стоимость лицензии SQL для каждого узла - MSMQ превосходит то, что руки вниз Я бы пошел только с SSB, если бы у меня был SQL уже в миксе. – stephbu 2008-12-01 10:42:43

0

Вы можете посмотреть на использование брокера сообщений с открытым исходным кодом, такими как Apache ActiveMQ

2

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

Возможно, я бы изучил некоторые альтернативные API, которые используют MSMQ под обложкой, например nServiceBus от Udi Dahan.

0

Похоже, что для всей вашей системы вы можете использовать Windows Workflow для управления своей бизнес-логикой и просто использовать MSMQ в качестве хранилища для своего списка задач. Ваш рабочий процесс начнется с вытягивания следующего сообщения из очереди, а затем определите, что с ним делать.

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

2

В качестве альтернативы ActiveMQ (упомянутый выше) существует открытый RabbitMQ с открытым исходным кодом. Из того, что они говорят, он прекрасно сочетается с ASP.NET и WCF.

http://www.rabbitmq.com/