Размер пулов соединений и количество одновременных запросов - PullRequest
0 голосов
/ 13 июля 2011

Мне нужно разработать высокомасштабируемый веб-сервис, но размер пула соединений (Oracle DB) установлен на 50.

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

Но по конфигурации возможно ли, чтобы сервер Weblogic или Glassfish одновременно принимал более 50 запросов?

Я прочитал, что сервер принимает запросы, которые находятся "в очереди", пока поток не обработает их.

Относительно «масштабируемости» у меня также есть вопросительный знак, потому что в среднем вызовы БД занимают 1,2 секунды. + накладные расходы на мыло ... ==> за 2,3 секунды времени ответа на каждый вызов.

Могу ли я оценить, сколько одновременных пользователей будет поддерживать сервер (Weblogic или Glasfish 4gb)?

Спасибо

1 Ответ

3 голосов
/ 14 июля 2011

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

Использование пулов соединений в первую очередь позволяет избежать затрат на установку новых соединений все время (плюс кешируются подготовленные операторы и т. Д.).), поэтому намерение состоит в том, чтобы повторно использовать их как можно чаще.

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

Что касается очередей: weblogic willзапросы очереди, но вы можете установить тайм-аут, чтобы запрос возвращался невыполненным через установленное время.Затем вы можете попробовать еще раз или сообщить пользователю, что система занята, и, возможно, повторить попытку позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...