Стойкая рабочая очередь в C # - PullRequest
24 голосов
/ 23 августа 2011

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

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

Статьи по теме:

Ответы [ 3 ]

11 голосов
/ 23 августа 2011

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

SQL Server поставляется со своей собственной встроенной очередью сообщенийа именно Сервисный брокер .Это позволяет избежать многих ловушек MSMQ, когда речь идет о масштабируемости, надежности и высокой доступности и сценариях аварийного восстановления.

Servcie Broker полностью интегрирован в базу данных (нет внешнего хранилища, одно последовательное резервное копирование / восстановление, одна единица отработки отказа, нет необходимости в дорогостоящем DTC с двухфазной фиксацией между хранилищем сообщений и базой данных, один T-SQL API для доступа и программирования как сообщений, так и ваших данных), а также обладает некоторыми приятными уникальными функциями, такими как транзакционный обмен сообщениями с гарантированной доставкой точно в один заказ , коррелированная блокировка сообщений внутренняя активация и т. Д.

7 голосов
/ 23 августа 2011

Я использовал Rabbit MQ в прошлом для проекта для домашних животных, вы можете добавить это в свой список для систем очередей.

Что касается каркаса для очереди, вы можете взглянуть на http://www.nservicebus.com/, мы выполнили несколько базовых проектов, работая над этим.И вот быстрый пример, чтобы начать: http://meisinger2.wordpress.com/2009/11/09/nservicebus-fifteen-minutes/

1 голос
/ 23 августа 2011

Я успешно использовал MassTransit в прошлом. Он поддерживает использование MSMQ, а также RabbitMQ.

...