|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Всем привет! Подскажите пожалуйста стоит ли изобретать велосипед или есть готовое решение? Описываю задачу. Есть Tomcat, есть Servlet, есть БД. При обращении клиента к сервлету, сервлет смотрит в БД, через JDBC драйвер. Нужно усложнить систему таким образом, чтобы при обращении клиента к сервлету, сервлет обращался к нескольким БД и выдавал клиенту обобщённый результат. Если делать обращение к БД последовательными, то ожидание ответа будет долгим. Мне нужно сделать так, чобы обращение к БД было параллельными. Можно каждое обращение запусккать в Thread, но насколько я знаю thread в сервлетах не правильно делать. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 19:18 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 19:45 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Дело не втом что неправльно а в том что сложно сделать это правильно. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 19:57 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
И, кстати, необходим механизм быстрой валидации запросов на СУБД. Например, препарировать запросы - это, обычно, быстро. Тогда, если все СУБД "в принципе готовы" исполнять подготовленные запросы, то надо "уведомить клиента", отправив ему заголовки и, желательно, начальные байты тела отклика. Иначе вы, рано или поздно, столкнётесь с тем, что время ожидания отклика не очень велико и его, как правило, невозможно увеличить. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 20:11 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Mandarin, что за субд? где находятся бд? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 20:16 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Mandarin, Вопрос странный. Параллельно к 5 бд это 5 переменных коннекта. Если вы про асинхронный запрос, то как вы бедете лепить общий результат не дождавшись все ответы? lleming, +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 08:02 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Petro123, всё просто если базы на одном сервере - можно сделать в одном запросе. как самое оптимальное - использовать храимки. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 09:03 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяPetro123, всё просто если базы на одном сервере - можно сделать в одном запросе. как самое оптимальное - использовать храимки.узко мыслишь. Нужен паттерн Фасад. Т.е одна база которая все собирает. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 09:16 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Это обычный бизнес сценарий. Future в помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 09:24 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Petro123узко мыслишь. Нужен паттерн Фасад. Т.е одна база которая все собирает.понятно, что городить огород это клёво. но можно все просто сделать в одной хранимке, в одной из баз. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 09:46 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяв одной из баз.тебе даже не дошло, что это ровно то что я сказал)) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 09:53 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Petro123тебе даже не дошло, что это ровно то что я сказал))до меня дошло, что ты хочешь попонтиться придумывая заумные названия. назвать простое обращение к нескольким базам "паттерн Фасад" - это нечто :) ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 10:22 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяно можно все просто сделать в одной хранимке, в одной из баз. чем огород в бд сильно лучше в огорода приложения ? что если у разраба нет достаточного доступа к БД или скиллов ДБА недостаточно. Для топикстартера по сути вопроса. Почему все непросто: thread per request плохой паттерн а в вашем случае, several threads per request. Создание потока дорогостоящая операция, поэтому если создавать по несколько потоков на каждый запрос, сервер может большей частью занят созданием потоков вместо обработки бизнес логики. К тому же jdbc blocking и вновь `c трудом` созданные потоки большей частью скорее всего будут простаивать в ожидании ответа от бд. А еще их нужно как синхронизировать и проверять что все завершены чтобы собрать ответ. Тут больше смотреть в сторону executorservice (да еще и ограниченной очередью) вместе с completablefuture чтобы как то управлять всем этим без ручной синхронизации. Особая тема предмета как и когда правильно погасить этот executor service если вдруг сервер будет рестартовать или гаситься. Утечки памяти ибо потоки в executor service не управляются томкатом. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 10:39 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
llemingчем огород в бд сильно лучше в огорода приложения ?потому, что обращение к разным бд на одном сервере - это стандарт субд, а не огород. для этого достаточно к имени таблицы добавить имя базы. использование хранимок - позволит собрать из разных баз - в темповые таблицы в памяти и уже из них отправить приложению законченный набор данных но только это пока предложения - пока нет о том что за данные возвращают каждая из баз и что из себя предполагает их обработка. llemingчто если у разраба нет достаточного доступа к БД или скиллов ДБА недостаточно.это ещё один вопрос к ТС ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 10:54 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадя, Паттерны, это язык общения программистов. Ты кроме слова хранимка слова знаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 10:58 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Petro123Паттерны, это язык общения программистов. Ты кроме слова хранимка слова знаешь?я не люблю когда общаются заумными словами, когда можно всё выразить простыми и доступными. как правило заумные фразы используют те кто хочет скрыть свои незнания. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 11:02 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
llemingСоздание потока дорогостоящая операция, поэтому... существуют асинхронные сервлеты (since Servlet API 3.0), чтобы "на общих основаниях" получать потоки из пула контейнера. А так - да: или хостить сервлет-контейнер в приложении или, наоборот, приложение в сервлет-контейнере. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 11:05 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Не очень понимаю, чем потоки и изначальный алгоритм автора топика Вам так не нравятся. Делал систему, работал в несколько потоков (нужно было посчитать запрос, потом сгенерить 100-1000 реквестов в И-нет за актуальными данными, потом нужно было их объединить и можно было выдать результат). Правда, система была разбита на модули. Вся обработка шла в своем мини-сервере (отдельная JVM на отдельном хосте), Web-часть туда просто задания по RMI отправляла и получала результат. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 11:05 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадякак правило заумные фразы используют те кто хочет скрыть свои незнания. ещё необразованные, как правило их не понимают. Leonid KudryavtsevНе очень понимаю, чем потоки и изначальный алгоритм автора топика Вам так не нравятся. Автор не сказал цель потоков? Параллелизм? Скорость? Пусть использует пул потоков. Загрузит все ядра. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 11:09 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Petro123пул потоков. Пул коннектов)). Что в принципе, едино. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 11:10 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяPetro123узко мыслишь. Нужен паттерн Фасад. Т.е одна база которая все собирает.понятно, что городить огород это клёво. но можно все просто сделать в одной хранимке, в одной из баз. Автору нужен параллелизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 11:28 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonАвтору нужен параллелизм.в ожидании ответа сервера? Все выше решения будут работать. Просто параллелизм в разных местах - сервлет апи, пул, драйвер... ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 11:46 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Дайте пример параллелизма с хранимкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 21:22 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonДайте пример параллелизма с хранимкой.да такова там нет, но и не понятно что требуется от параллелизма ТС. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 21:51 |
|
|
start [/forum/moderation_log.php?user_name=open+client+adapter]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
36ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
2ms |
others: | 717ms |
total: | 891ms |
0 / 0 |