Система очереди сообщений
Я в процессе написания системы очереди сообщений.
Мой вопрос: лучше ли делать эту очередь с файлами или в базе данных?
Если бы я должен был выбрать базу данных, ей нужно было бы проверять новые задания каждую секунду, и это просто немного для меня накладные расходы?
Если это файлы, я думаю, вы просто постоянно отслеживаете папку и выполняете ее на основе этого?
БР,
Ответы
Ответ 1
Не изобретать колесо.
[Изменить: обновлено до 2014 года, теперь ссылка на кролик MQ, поскольку Айенде перешел к созданию баз данных документов, а не к очередям сообщений, но затем снова появился RabbitMQ. Я бы не писал это, но теперь в сообщениях должно быть 30 символов, поэтому мне нужно немного бить.]
Ответ 2
Я выбираю вариант "C" — использовать очередь сообщений, уже встроенную в Windows:
http://msdn.microsoft.com/en-us/library/ms978430.aspx
Ответ 3
Каковы ваши критерии для принятия решения "Лучше"? представление? масштабируемость? надежность? Стоимость?
Основные компромиссы:
База данных - поддержка транзакций, гарантии целостности (через ограничения), более богатая поддержка запросов, вероятно, будет лучше масштабироваться (в зависимости от реализации)
файловая система - более дешевые, более простые, менее подвижные части (по крайней мере изначально)
Вы можете сначала взглянуть на существующие решения - MSMQ, брокер SQL Server, библиотеки с открытым исходным кодом, такие как очереди Rhino (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)
Ответ 4
Как можно посмотреть в MSMQ
Ответ 5
Это зависит от ваших требований, но если вам нужно ставить в очередь несколько сообщений как одну группу, вам потребуется какая-то поддержка транзакций. В этом случае база данных является вашим другом.
Ответ 6
Вы пишете систему очереди сообщений, потому что хотите написать систему очереди сообщений; или это просто часть решения большой проблемы?
Я бы предложил не писать новую систему очередей сообщений. Вы можете использовать MSMQ или что-то еще с полки.