|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#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 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Не понимаешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 22:01 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonНе понимаешь?дословно - если, то всё понятно, но есть но... вот пример асинхронного jdbc https://code.google.com/archive/p/async-mysql-connector/wikis/UsageExample.wiki ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 22:09 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
http://qaru.site/questions/46525/is-asynchronous-jdbc-call-possible http://www.nsc.ru/win/docs/db/sql/21.htm#part_10 https://events.rainfocus.com/catalog/oracle/oow17/catalogjavaone17?search="jdbc next"&showEnrolled=false ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 22:33 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonДайте пример параллелизма с хранимкой.всё зависит от того что подразумевается под окончательной обработкой. если данные от разных баз можно свести в один результирующий запрос - вот тут и будет параллелилизм. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 22:45 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Ты интересный человек. Я поинтересовался - понимаешь ли ты зачем бизнесу нужно параллелное исполнение 2х запросов из двух разных баз? Ты вместо ответа - закидал меня странными ссылками. Зачем они мне? ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2018, 22:51 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonТы интересный человек. Я поинтересовался - понимаешь ли ты зачем бизнесу нужно параллелное исполнение 2х запросов из двух разных баз? Ты вместо ответа - закидал меня странными ссылками. Зачем они мне?ссылки для тс.., ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 06:10 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
А сделать правильную архитектуру вариант не рассматривается? Намекаю на консолидацию данных в едином хранилище. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 08:23 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Базы могут быть географически разнесены. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 08:55 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonДайте пример параллелизма с хранимкой. тут ты прав конечно. При хранимке не параллелизм, а конечная цель решается другой архитектурой. Если конечная цель - быстрая консолидация. А параллелизм - средство достижения . ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 10:06 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonБазы могут быть географически разнесены. в двухзвенках не проблема. Репликация, DB_LINK. Пусть бы автор сказал - двухзвенка не нужна! Тогда вадя - в пролёте. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 10:08 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonБазы могут быть географически разнесены.поэтому и был задан вопрос вадяMandarin, что за субд? где находятся бд? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 11:31 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Petro123maytonБазы могут быть географически разнесены. в двухзвенках не проблема. Репликация, DB_LINK. Пусть бы автор сказал - двухзвенка не нужна! Тогда вадя - в пролёте. Это - архитектурный вопрос. Возможно заказчик не хочет покупать лицензию на репликатор БД. Но он хочет (и имеет право!) попросить бизнес-flow реализовать таким образом чтобы сводные отчоты из двух географически децентрализованных БД извлекались быстрее чем суммарное время работы этих двух отчотов. Нормальное пожелание? Да. Реализовать можно? Да. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.09.2018, 15:02 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonНормальное пожелание? Да. Реализовать можно? Да. Да. Можно реализовать все способы выше описанные мемберами). ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 09:50 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
А как бы вы реализовали? Через репликацию? Или через параллельный пуск 2 отчотов? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 10:07 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonА как бы вы реализовали? Через репликацию? Или через параллельный пуск 2 отчотов? это ведь входные данные. Репликация, OLAP\OLTP\Витрины данных\Региональные базы это если уже изначально есть данная сеть из нескольких баз. Её строят не по причине: "мне понадобились 2 параллельных отчёта". Как бы другой уровень. ... С другой стороны, DB_LINK с материализованными индексами это тоже решение но без 3-х звенки и Java. .. Выходит опять - кто на чём умеет тот так и пишет. В Java можно потоки сделать контейнером. можно самому и можно пулом. А можно клиентом JavaFX и бэкенд об этом даже не узнает)). Можно в JS клиенте по REST и тогда спросить автора - в чём вопрос дорогой? С каких пор клиент не может асинхронные параллельные запросы? ... Слишком много вариантов и вопрос элементарный. IMHO ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 10:42 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяно и не понятно что требуется от параллелизма ТС. Помогаю прояснить ТСЕсли делать обращение к БД последовательными, то ожидание ответа будет долгим. или если делать обращение к БД паралельно, то ожидание будет не долгим (как минимум быстрее). При чем здесь хранимки, репликация, db_link. Если у него компетенция была бы в этом, то этот вопрос ТС бессысленен и врядли был бы задан, по крайней мере в ветке Java. Вот доставил коммент вадявот пример асинхронного jdbc https://code.google.com/archive/p/async-mysql-connector/wikis/UsageExample.wiki Ассинхронный драйвер mysql (где у ТС указано что у него mysql?), т.е. самописный драйвер который на полуживом хостинге чисто самолюбие потешить? У которого документация в 2 страницы? А если протокол обмена чуть чуть поменяется ТС драйвер сам переделает ? Советую сделать копию с исходников, гугло хостинг в любой момент может исчезнуть. Уж лучше дождаться когда спецификация ассинхронных драйверов к БД выдет из драфта и появятся полноценные поддерживаемые релизы этих драйверов тогда можно будет и смотреть и решать использовать их или нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 12:42 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Вадя http://qaru.site/questions/46525/is-asynchronous-jdbc-call-possible лучше использовать оригинальный источник, qaru хромают авто переводы. Не знаю как забанить этот проклятый qaru на яндексе вечно выдачу флудит Оригинал https://stackoverflow.com/questions/4087696/is-asynchronous-jdbc-call-possible Ну и не мог не пройти мимо :=) async драйвера к mysql async-mysql-connector - issue #1 How to use inside of a normal web app? This is not a bug report per say, more of a question on usage within a real world application. .... How should this work in say a servlet 3 based async web app? .... ----------------------------------------------------------------------------------------- Comment #1 Posted on Nov 24, 2014 by Quick Panda I want to ask the same question, how to use inside a servlet? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 12:53 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
У автора - Tomcat/Servlets + база. Вот как-то с такой вводной надо начать. Без лишних усложнений. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 12:56 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
llemingили если делать обращение к БД паралельно, то ожидание будет не долгим (как минимум быстрее).всё сказанное мной выше без ответа на вопрос вадяMandarin, что за субд? где находятся бд? носит чисто гипотетический ответ. как один из вариантов. так же остался вопрос - что значит постобработка результатов запросов к нескольким базам? если эти запросы можно свести к одному результирующему запросу заключив запросы к базам в подзапросы - то результат будет равносилен "параллельному обращению к базам". llemingАссинхронный драйвер mysql (где у ТС указано что у него mysql?), это как пример что есть смылс ( если у тс mysql) воспользоваться . llemingУж лучше дождаться когда спецификация ассинхронных драйверов к БД выдет из драфта и появятся полноценные поддерживаемые релизы этих драйверов тогда можно будет и смотреть и решать использовать их или нет.а это пусть тс сам решает.... варианты предложены на тех данных что озвучены тс.... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 12:59 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
llemingлучше использовать оригинальный источник, qaru хромают авто переводыя дал информацию - как тс её воспользуется - его дело, никто ему не мешает дойти и до первоисточника... maytonУ автора - Tomcat/Servlets + база. Вот как-то с такой вводной надо начать. Без лишних усложнений.предложенные варианты вполне сочетаются с этой вводной... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 13:02 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяэто как пример что есть смылс ( если у тс mysql) воспользоваться . асинхронный драйвер применяется широко в шарпе с сиквелом. В Java не применяется такой подход. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 13:10 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Petro123В Java не применяется такой подход.ранее много что не применялось, к примеру лямбды некоторые и ws игнорировали... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 13:13 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадятак же остался вопрос - что значит постобработка результатов запросов к нескольким базам? если эти запросы можно свести к одному результирующему запросу заключив запросы к базам в подзапросы - то результат будет равносилен "параллельному обращению к базам". Не по времени. Ведь ТС акцентировал проблему на долгом ожидании из за последовательности запросов, видимо его не сильно беспокоит что запросов несколько. Беспокоит то что время получения всех данных это сумма времени потраченного на каждый запрос. И он вполне очевидно хочет получить результат, время получения всех данных это время наиболее затратного по времени запроса. И даже нашел вполне очевидное решение и спросил про подводные камни такого решения. maytonУ автора - Tomcat/Servlets + база. Вот как-то с такой вводной надо начать. Без лишних усложнений. Справедливости ради не одна а несколько БД ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 13:26 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяPetro123В Java не применяется такой подход.ранее много что не применялось, к примеру лямбды некоторые и ws игнорировали... Архитектурно... задача драйвера в другом. Он является адаптером обобщённого прикладного API и API конкретного сетевого интерфейса БД. И есть у меня большие сомнения что будет хорошим архитектурным решением нагружать драйвер еще дополнительными задачами помимо тех которые он уже выполняет. На прикладном уровне данная задача решается через ThreadPoolExecutor, и два экземпляра Futures. И я не вижу никаких оснований втаскивать сюда новые (непроверенные) виды драйверов. Тем более что еще открытый вопрос как их асинхронность втащить в парадигму SQL/java/jdbc. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 13:33 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonИ есть у меня большие сомнения что будет хорошим архитектурным решением нагружать драйвер еще дополнительными задачами помимо тех которые он уже выполняет.сомнения - это не причина отказа от использования, или хотя бы проверки варианта. maytonНа прикладном уровне данная задача решается через ThreadPoolExecutor, и два экземпляра Futures.вариантов решения несколько -задача выбрать лучший. maytonИ я не вижу никаких оснований втаскивать сюда новые (непроверенные) виды драйверов.пока не вытащишь и сам не проверишь - трудно судить. maytonТем более что еще открытый вопрос как их асинхронность втащить в парадигму SQL/java/jdbc.пока не пройдёшь этот путь - вопрос так и останется открытым. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 13:45 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
llemingСправедливости ради не одна а несколько БДтонкость в расположении этих бд ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 13:46 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадя, Мой вариант - лучший. Не сомневайся. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 14:08 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonМой вариант - лучший. Не сомневайся.да ради бога ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 14:43 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
вадяPetro123В Java не применяется такой подход.ранее много что не применялось, к примеру лямбды некоторые и ws игнорировали... ты про будущее или про сегодня? LOL ))) maytonАрхитектурно... задача драйвера в другом. Он является адаптером обобщённого прикладного API и API конкретного сетевого интерфейса БД. И есть у меня большие сомнения что будет хорошим архитектурным решением нагружать драйвер еще дополнительными задачами помимо тех которые он уже выполняет. В будущем - не уверен. Майкрософт решает таким способом заморозку интерфейса в одну строку. А у нас с JavaFX нужно писать побольше строк чем: Ридер ридер = Драйвер.ДайСтрокиAsync() ))). Но это в будущем). С другой стороны, асинхронность решалась в драйверах уже лет 20 в ADO через: авторИспользуйте CacheSize свойства, сколько записей следует извлекать за один раз в локальную память от поставщика. Например если CacheSize равно 10, после первого открытия записей объекта, поставщик возвращает первые 10 записей в локальную память. При перемещении по записей объекта, поставщик возвращает данные из буфера локальной памяти. Удачи аффтару! ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2018, 15:28 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Всем привет! Большое спасибо за толь бурное обсуждение :) Поясняю некоторые вопросы которые были заданы выше. 1. Под БД я понимаю разные источники данных. Например на одном сервере информация будет храниться в БД MSSQL, на другом в PostgreSQL, на третьем в DBF, а на четвёртом вообще в текстовых файлах. Где хранится информация это не принципиально, важно то, что источники данных отдают структурированную информацию которую я могу объединить и выдать итоговый результат клиенту. 2. Сделать объединение мне нужно параллельно потому, что это быстрее чем последовательно :) Один из участников топика это верно подметил. 3. Для того чтобы не создавать постоянно потоки в сервлетах я хочу использовать пул уже созданных потоков, тут тоже есть варианты либо пользоваться готовым решением либо изобретать велосипед. P/S/ имею пояса всех цветов по изобретению велосипедов :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 09:48 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Опубликуй фрагмент кода как оно щас работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 09:59 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Mandarin, Написал кучу фигни кроме нужной. На что и где тратится время, если обычно база отвечает за 0,1 сек? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 10:01 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
mayton, Сейчас работает очень просто, даже показывать не чего. Приходит запрос от клиента с параметрами, эти параметры берёт jdbc драйвер выполняет хранимую процедуру и отдаёт результат клиенту. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 10:02 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
maytonОпубликуй фрагмент кода как оно щас работает.+1 И логи временные. А то аффтар даже текстовые субд насобирал. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 10:03 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Mandarinдаже показывать не чего.вот так и работай, раз все отлично и нигде не болит. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 10:05 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
Mandarin, Ты ждешь что тебе дадут готовый исходник сервлета? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 10:05 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
mayton, Готовый исходник не нужно, я сам сусам, мне нужно понимание стоит изобретать велосипед или есть решения из коробки которые нужно допилить до необходимого состояния. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 10:27 |
|
Работа с несколькими БД из сервлетов.
|
|||
---|---|---|---|
#18+
У тебя 4 различных источника данных. Будут разные дрова и разные API. Но чтобы решать такую задачу общо, нужен некий обобщенный DAO. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Реализуешь? Потом расскажу как делать дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.09.2018, 10:43 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2121806]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
54ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
91ms |
get tp. blocked users: |
1ms |
others: | 329ms |
total: | 519ms |
0 / 0 |