|
Message queue. Какой представитель лучше ? Или проще через DB вообще ?
|
|||
---|---|---|---|
#18+
Привет. Нужно решить простенькую задачку: извне системы поставляются задачи, которые нужно обрабатывать. Полагаю, что процесс получения задач лучше бы отделить от непосредственной обработки. Так и надежность выше, и разрабатывать отдельно компоненты проще, очевидно. Классическая задачка Producer-Consumer, но распределенная. Данный вид задач традиционно можно решить двумя способами: через базу данных, или через очереди сообщений. Что лучше в настоящее время ? Использовать ли MS Sql 2012. либо Message-oriented middleware типа ZeroMQ, RabbitMq и прочее. Что интересного и эффективного есть в настоящий момент, может кто-то в теме ? Желательно, конечно, применительно к .NET платформе. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2015, 14:13 |
|
Message queue. Какой представитель лучше ? Или проще через DB вообще ?
|
|||
---|---|---|---|
#18+
Тут всё от способностей зависит (ц) 1. SQL Server база 2. SQL Broker 3. Redis и еще много всякого, но как для меня - хватило бы уже этих трёх, точнее одного из них ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2015, 15:30 |
|
Message queue. Какой представитель лучше ? Или проще через DB вообще ?
|
|||
---|---|---|---|
#18+
Winnipuh, Но зачем пункты 2 и 3 ? Как я понимаю (только что погуглил) они нужны лишь в условиях нескольких БД, синхронизированных между собой ? Этого мне не нужно. У меня все простенько. Через Wcf приходит запрос, который не хочу обрабатывать в самом сервисе. Хочу, чтобы он отправлял это сообщение в очередь либо в БД. А уже другой сервис/сы берут задание в обработку. Нужно принимать заявки. Затем их обрабатывать - при этом привлекаются работники склада, т.е. компьютер сам по себе ее не сделает. Затем отправлять на почту сообщение о выполнении задачи. По идее можно, это организовать через БД, но вот думаю не попробовать ли очереди сообщений :) Для чего то же их создали. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2015, 15:43 |
|
Message queue. Какой представитель лучше ? Или проще через DB вообще ?
|
|||
---|---|---|---|
#18+
ProBiotekWinnipuh, Но зачем пункты 2 и 3 ? Как я понимаю (только что погуглил) они нужны лишь в условиях нескольких БД, синхронизированных между собой ? Этого мне не нужно. У меня все простенько. Через Wcf приходит запрос, который не хочу обрабатывать в самом сервисе. Хочу, чтобы он отправлял это сообщение в очередь либо в БД. А уже другой сервис/сы берут задание в обработку. Нужно принимать заявки. Затем их обрабатывать - при этом привлекаются работники склада, т.е. компьютер сам по себе ее не сделает. Затем отправлять на почту сообщение о выполнении задачи. По идее можно, это организовать через БД, но вот думаю не попробовать ли очереди сообщений :) Для чего то же их создали. Было написано, что ", но распределенная.", вот я и написал. Всё, естественно, от задачи зависит. Если один потребитель очереди, то все проще, но и в этом случае SQLBroker Queue может быть полезной. И в Redis можно делать хорошие реализации очередей, причем что важно - просто, без задвигов типа ZeroMQ и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2015, 15:54 |
|
Message queue. Какой представитель лучше ? Или проще через DB вообще ?
|
|||
---|---|---|---|
#18+
Winnipuh, Спасибо за наводку на Reddis. Интересная штука. Нужно подумать для чего его можно в принципе прикрутить. Также сейчас по изучаю, что это за штука такая - SQLBroker Queue. Вообще. Насколько я понимаю у очередей есть два плюса: 1. Возможность настроить раздачу задач по условию. По приоритетам, по фильтру. Но это можно реализовать и в простой БД, через хранимую процедуру. 2. Возможность "закрепить" сообщение за тем, кто взял его в обработку. Но и тут не вижу проблемы. Простой UPDATE + OUTPUT автоматически "забронирует" задачу за тем кто ее считывает. Вот и думаю. Для чего они, эти очереди вообще. Решил приобщиться потихоньку. Интересно. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2015, 16:36 |
|
Message queue. Какой представитель лучше ? Или проще через DB вообще ?
|
|||
---|---|---|---|
#18+
Однако то, что Reddis как минимум 3 года занимает первое место в ранкинге подобного вида баз (key value store) внушает. http://db-engines.com/en/ranking/key-value store ... |
|||
:
Нравится:
Не нравится:
|
|||
24.07.2015, 16:40 |
|
|
start [/forum/topic.php?fid=20&msg=39015635&tid=1401332]: |
0ms |
get settings: |
111ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 350ms |
total: | 578ms |
0 / 0 |