Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Несколько db-schemas в одном SpringBoot App - перформенс? / 20 сообщений из 20, страница 1 из 1
25.05.2018, 08:07
    #39649669
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Здравствуйте, есть смысл разделить содержимое приложения по нескольким схамам.
Вычитал, что если в runtime менять базы данных, то выйдет дорого по перформенсу.

Собственно в SpringBoot можно сконфигурировать несколько dataSurces.
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-two-datasources

Сконфигурировал. Всё работает. Собственно, хотел поинтересоваться, нет ли в этом случае какой-то загвоздки? Не повлияет ли как-то и каким-то образом на перформенс если при старте приложение будет поднимать коннекты к например 5 различным dataSources?
Буду благодарен за мнения..
...
Рейтинг: 0 / 0
25.05.2018, 09:09
    #39649682
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Если вас не беспокоит производительность несколько подключений к одной схеме, то не должна беспокоить и производительность нескольких подключений к разным схемам.
...
Рейтинг: 0 / 0
25.05.2018, 09:22
    #39649686
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Basil A. SidorovЕсли вас не беспокоит производительность несколько подключений к одной схеме, то не должна беспокоить и производительность нескольких подключений к разным схемам. - Немного не понял, - это вы ответили так, или просто сарказм?
...
Рейтинг: 0 / 0
25.05.2018, 10:11
    #39649713
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
_webdev_перформенспереведи это слово и скажи почему оно тебя беспокоит
...
Рейтинг: 0 / 0
25.05.2018, 10:31
    #39649724
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Ох как я люблю когда пытаются решить проблему, которой нет :)
...
Рейтинг: 0 / 0
25.05.2018, 12:28
    #39649825
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
_webdev_ответили такДа, я так ответил.
...
Рейтинг: 0 / 0
25.05.2018, 12:29
    #39649827
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Petro123_webdev_переведи это слово и скажи почему оно тебя беспокоит
))) performance - в данном случае скорость обработки запроса.

Весь "цыр-бор" в том, что я где-то на stackoverflow прочитал, что менять dataSource в runtime щыень затратная задача. Поэтому у меня и возник вопрос такой.
Конечно же, что dataSource создаются при старте, но хотел переспросить.

Но исходя из ваших ответов, понимаю, что всё ок, и не надо придумывать того чего нет.
...
Рейтинг: 0 / 0
25.05.2018, 12:37
    #39649834
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
_webdev_Здравствуйте, есть смысл разделить содержимое приложения по нескольким схамам.
I)
С database pool есть проблема, что кэшь PreparedStatement'ов внутри connection становится общий для всех модулей приложения. Отсюда недостатки:
1. Т.к. один коннекшен радостно передается между модулями, он собирает "мусор" из всех модулей
Соответственно:
2. Смысл кэша пропадает. Т.к. он маленький и нужные запросы из него банально в соседнем модуле вымываются
3. Кэш всегда "забит" под завязку, т.ч. происходит существенный перерасход памяти.

в этом смысле, разделения приложения по нескольким схемам в БД и нескольким подключениям connection pool, может дать определенные выгоды в смысле использования памяти JDBC драйвером.

Разумеется, зависит от грамотности данного "разделения" + специфики конкретных драйверов

Разбирался с безумным потреблением памяти Oracle JDBC драйверов в корпоративной системе.

II)
Разумное разделение всегда полезно в смысле простоты и удобства администрирования. Будет проблема, например ресурс леак (утечка сессий, незакрытые курсоры) -> проще найти место возникновения, проще устранить, меньше потери функциональности и проблемы из-за ошибки (есть надежда, что соседние модули не затронет)
...
Рейтинг: 0 / 0
25.05.2018, 12:42
    #39649839
Leonid Kudryavtsev
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
_webdev_...менять dataSource в runtime щыень затратная задача....
А зачем кому-то может понадобится менять dataSource в runtime ?

Мне кажется, это примерно тоже самое, что говорить "перезагрузка app сервера в runtime очень затратная задача, поэтому app сервером лучше не пользоваться". Так-то оно так, кто спорит, но зачем сервер нужно перегружать в runtime, есть большая загадка ))).
...
Рейтинг: 0 / 0
25.05.2018, 13:06
    #39649854
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
_webdev_,
У тебя смесь три в одном:
- затратное
- во время выполнения
- скорость запроса.
Пиши код и проверяй на практике.
...
Рейтинг: 0 / 0
25.05.2018, 13:16
    #39649865
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
С датасорсами не будет проблем. Их можно подключить к приложению столько штук сколько надо. Но я бы озабочетился свободной памятью для Hiber контекстов и Ehcache если вы таковые используете.
...
Рейтинг: 0 / 0
25.05.2018, 13:33
    #39649878
Герой дня
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
у Спринга есть возможность на лету переключать датасорсы, точнее их конфигурации, через Spring Bus
...
Рейтинг: 0 / 0
25.05.2018, 23:18
    #39650186
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Leonid Kudryavtsev_webdev_Здравствуйте, есть смысл разделить содержимое приложения по нескольким схамам.
I)
С database pool есть проблема, что кэшь PreparedStatement'ов внутри connection становится общий для всех модулей приложения. Отсюда недостатки:
1. Т.к. один коннекшен радостно передается между модулями, он собирает "мусор" из всех модулей
Соответственно:
2. Смысл кэша пропадает. Т.к. он маленький и нужные запросы из него банально в соседнем модуле вымываются
3. Кэш всегда "забит" под завязку, т.ч. происходит существенный перерасход памяти.

в этом смысле, разделения приложения по нескольким схемам в БД и нескольким подключениям connection pool, может дать определенные выгоды в смысле использования памяти JDBC драйвером.

Разумеется, зависит от грамотности данного "разделения" + специфики конкретных драйверов

Разбирался с безумным потреблением памяти Oracle JDBC драйверов в корпоративной системе.

II)
Разумное разделение всегда полезно в смысле простоты и удобства администрирования. Будет проблема, например ресурс леак (утечка сессий, незакрытые курсоры) -> проще найти место возникновения, проще устранить, меньше потери функциональности и проблемы из-за ошибки (есть надежда, что соседние модули не затронет) - пасибо за объяснение,
Может я просто ещё не работал с высоко нагруженными системами, или не понимаю чего, но. Такого как незакрытые курсоры и так д... Для этого сейчас есть SpringDataJpa, чтоб не парсить ResultSet-ы и так д..
...
Рейтинг: 0 / 0
25.05.2018, 23:20
    #39650187
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Leonid KudryavtsevА зачем кому-то может понадобится менять dataSource в runtime ? - Я просто сказал, что прочитал на stackoverflow - к сожалению, не могу найти ссылку на пост, где о этом было написано.


Leonid KudryavtsevМне кажется, это примерно тоже самое, что говорить "перезагрузка app сервера в runtime очень затратная задача, поэтому app сервером лучше не пользоваться". Так-то оно так, кто спорит, но зачем сервер нужно перегружать в runtime, есть большая загадка ))). - ответил выше.
...
Рейтинг: 0 / 0
25.05.2018, 23:21
    #39650188
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Petro123У тебя смесь три в одном:
- затратное
- во время выполнения
- скорость запроса.
Пиши код и проверяй на практике. - да, для особого тестирования пока времени, как всегда, не хватает, поэтому, если мысль залезла в голову, то лучше спросить глупость, но спросить..
...
Рейтинг: 0 / 0
25.05.2018, 23:24
    #39650191
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
maytonС датасорсами не будет проблем. Их можно подключить к приложению столько штук сколько надо. Но я бы озабочетился свободной памятью для Hiber контекстов и Ehcache если вы таковые используете. - Вот на счёт "Hiber контекстов" - спасибо. Ehcache - да, есть, но пока я не очень активно его внедряю, пока не вижу надобности. Так как данные динамичны и приходят с различных источников, строить для этого кэш - думаю в моём случае будет затратно очень, плюс отличное место для ошибок..
...
Рейтинг: 0 / 0
25.05.2018, 23:25
    #39650192
_webdev_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Герой дняу Спринга есть возможность на лету переключать датасорсы, точнее их конфигурации, через Spring Bus - насколько я погуглил - речь идёт о spring-cloud, где есть несколько микросервисов и так д, у меня пока один проект.
...
Рейтинг: 0 / 0
26.05.2018, 01:00
    #39650212
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
Лучше все таки решать вопросы по мере поступления. И пока не оптимизировать то чего нет.
...
Рейтинг: 0 / 0
26.05.2018, 10:07
    #39650248
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
_webdev_Petro123У тебя смесь три в одном:
- затратное
- во время выполнения
- скорость запроса.
Пиши код и проверяй на практике. - да, для особого тестирования пока времени, как всегда, не хватает, поэтому, если мысль залезла в голову, то лучше спросить глупость, но спросить..
извини, ветка форума программистов.
Т.е. это например, я начал писать и....спрашиваю по мере написания.
2. Когда я пишу, я всегда стараюсь сломать систему если не знаю как она отреагирует.
Своеобразное Unit тестирование.
Где код?
...
Рейтинг: 0 / 0
26.05.2018, 14:36
    #39650346
Герой дня
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько db-schemas в одном SpringBoot App - перформенс?
_webdev_Герой дняу Спринга есть возможность на лету переключать датасорсы, точнее их конфигурации, через Spring Bus - насколько я погуглил - речь идёт о spring-cloud, где есть несколько микросервисов и так д, у меня пока один проект.

ну да, хотя, может быть, если и без cloud механизм изменения параметров датасурса
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Несколько db-schemas в одном SpringBoot App - перформенс? / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]