Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




MySQL.RU - Webboard



Вернуться
Очереди. q4m. Кто-нибудь сталкивался?? (Pavel) 22/04/2009 - 11:11:28



From: Pavel - 22/04/2009 - 11:11:28
Subject:Очереди. q4m. Кто-нибудь сталкивался??
-----------------
День добрый!
Уже задавал вопрос на другом форуме, но ответа так и не получил...

Скажите, кто-нибудь работал с http://q4m.31tools.com/ ?

Вот что пишет автор про этот проект:
автор

Q4M (Queue for MySQL) is a message queue licensed under GPL that works as a pluggable storage engine of MySQL 5.1, designed to be robust, fast, flexible. It is already in production quality, and is used by several web services


В Oracle такая функциональность есть по-умолчанию, называется Advanced Queues.

Зачем мне это нужно:
Предположим, у меня есть виртуальный кошелек (ну, типа WM). Доступ к нему предоставляется через WEB. Вся система состоит из 2х частей:
- фронт, куда коннектятся клиенты.
- бек, здесь я веду все счета, проводки, делаю транзакции. (назвал беком, хотя речь идет об OLTP)

Типичные операции - запрос баланса клиентом (при загрузке каждой страницы) и перевод денег куда-неважно )
Пускать приложения из фронта напрямую в БД бека я не хочу. Мне нужно использовать какие-либо сообщения, между фронтом и беком.
Навязывается идея использовать очередь сообщений. Фронт кладет в очередь и ждет ответа, бек забирает и обрабатывает.

Преследую следующие цели:
1) Безопасность. Фронт не может напрямую ходить в БД бека. Может только кидать запросы и ждать на них ответа. В бд фронта хранятся некритичные данные (новости, сообщения, контент рекламный).
2) Нормирование и ограничение нагрузки на бек. Несколько сложнее описать... Пример: У меня есть 1000 клиентов. Каждый из них раз в день делает перевод денег. И так сложилось, что все они решили сделать это одновременно. т.е. 1000 подключений к БД, 1000 одновременный транзакций (транзакций БД). А если у меня есть очередь запросов, и 100 потоков, исполняющих эти запросы в беке - у меня всегда будет максимум 100 подключений к БД и максимум 100 одновременных транзакций. Ну и пусть, что в этом случае мне нужно будет сделать 10 итераций. Нагрузка не постоянная. Т.е. я таким образом нагрузку распределяю ("размазываю") по времени.
Надеюсь, понятно изложил.

Привлекает в q4m то, что работа с очередями ведется через стандартный интерфейс БД. Не нужно писать что-либо свое.

Теперь вопросы:
1) Если кто-то работал с q4m - поделитесь впечатлениями плз. Автор
2) Если кто-то сталкивался с похожей задачей (либо просто понимает о чем речь :) ), поделитесь
вариантами решения.

Да и вообще любые комментарии приветствуются.

Спасибо!


[Это сообщение - спам!]

Последние сообщения из форума

Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
35456



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |