ASP.NET - лучшая система очередей для нового приложения - PullRequest
9 голосов
/ 01 декабря 2008

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

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

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

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

Я пропускаю какие-либо очевидные решения? В идеале это будет продукт Microsoft, но на самом деле он просто должен работать в магазине, ориентированном на Microsoft.

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

Ответы [ 8 ]

13 голосов
/ 01 декабря 2008

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

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

3 голосов
/ 01 декабря 2008

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

2 голосов
/ 09 июня 2009

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

http://www.rabbitmq.com/

2 голосов
/ 01 декабря 2008

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

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

1 голос
/ 01 декабря 2008

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

0 голосов
/ 16 февраля 2009

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

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

0 голосов
/ 01 декабря 2008

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

0 голосов
/ 01 декабря 2008

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

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

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

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

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

...