2010-02-18 3 views
15

Я нахожусь в процессе написания системы очереди сообщений.Система очереди сообщений

Мой вопрос: лучше ли делать эту очередь с файлами или в базе данных?

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

Если это файлы, я думаю, вы просто постоянно отслеживаете папку и выполняете ее на основе этого?

BR,

ответ

28

Do не reinventthewheel.

[Изменить: обновлено на 2014 год, теперь ссылка на кролик MQ, поскольку Айенде перешел к созданию баз данных документов, а не очередей сообщений, но затем снова появился RabbitMQ. Я не буду писать это, но теперь сообщения нужно 30 символов, поэтому мне нужно болтать немного.]

2

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

3

Как могли бы хотеть смотреть в MSMQ

+0

Поскольку вы не часто встречаетесь, я комментирую здесь, чтобы сообщить вам, что я ответил на ваш пост об этом вопросе на мета. –

2

Вы пишете систему очереди сообщений, потому что вы хотите, чтобы написать сообщение система очереди; или это просто часть решения более серьезной проблемы?

Я бы предложил не писать новую систему очередей сообщений. Вы можете использовать MSMQ или что-то еще с полки.

5

Какие у вас критерии для принятия решения «Лучше»? представление? масштабируемость? надежность? Стоимость?

Основные компромиссы:

База данных - поддержка транзакций, гарантирует целостность (через ограничения), богаче поддержка запрос, вероятно будет лучше масштабируются (в зависимости от реализации)

файловой системы - дешевле, проще, меньше движущихся частей (по крайней мере, на начальном этапе)

Вы можете захотеть взглянуть на существующие решения первой - MSMQ, SQL Server, брокер библиотек с открытым исходным кодом, таких как Rhino очередей (http://ayende.com/Blog/archive/2008/08/01/Rhino-Queues.aspx)