|
|
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
Есть много приложений. Все эти приложения обращаются на сервлет для получения данных из БД: Пример обращения к сервлету Выдать все данные по указанным параметрам, переданным в сервлет, в указанном формате (doc, pdf, xml...) Пример запроса к сервлету: <Query><Param id='name'>SELECT_ALL</Param><Param id='id'>40</Param></Query> Действия сервлета На входе поступает строка: <Query><Param id='name'>SELECT_ALL</Param><Param id='id'>40</Param></Query> В соответствии с тегами (параметрами) на входе, он залезает в файл с запросами, находит запрос по параметру название запроса, подставляет параметры и выполняет сам запрос. Результат возвращает. И так. Я хочу обратиться к БД с запросом для получения данных. Для этого я обращаюсь на контейнер сервлетов, он ищет файл, читает его, и посылает запрос к БД. БД обрабатывает запрос и выдает результат. Сервлет получает результат с БД и оборачивает в удобный вид. Внимание! Вопрос! Все вроде хорошо. Но каждый раз приходится лезть в этот файл с запросами и делать из него чтение. Насколько мне известно, в Java I/O не самая быстрая вещь. К тому же, вероятность того, что кто-то этот файл однажды убьет - высока. Может ли решение этой проблемы быть связано с надстройками над JDBC, такими как JPA, Hibernate? А может все идеально и это я такой Василий? - Один важный нюанс. Нельзя изменять таблицы. Жду мнений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:14 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
eldarkaa, Да и запросы. Вот допустим разновидности одного запроса. Код: java 1. 2. 3. Может все же спасет DAO с перегружаемым конструктором или методом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:21 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
идеи такие: сделать вместо обращение с указанием файла, обращение к сущности (DAO) для каждой системы - свое DAO (перегружаемое) так мы избавимся от лишнего чтения файла, но где тогда хранить все эти "запросы-конструкторы?" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:26 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
Файлы кэшировать не судьба? В файлах то что? Шаблоны запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 20:45 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
Лагман, да, в файлах шаблоны запросов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 21:11 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
Почему файлы лежат там, где их кто-то убъет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 21:34 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
К каждой системе существует такой файл шаблонов запросов. Сейчас их около 30 и их будет еще больше. Сейчас чтобы отредактировать такой файл, нужно его извлечь из системы с соотв. правами, подправить (тут можно нечаянно не своему запросу что-то исправить) где надо, и залить.. Тогда мы получим, что делали апдейт для одного, а повредили другое. Я хотел обратить внимание на это, словом "убить". - Почему нет кэширования? Исторически так сложилось и это будет исправлено. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 21:58 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
eldarkaa , Ваша проблема к Java отношения особо не имеет. Вам надо просто где-то хранить метаинформацию. В конечном счете, это все равно будет некий "файл", будь это файл в папке, файл данных СУБД, или файл данных в удаленном облаке. Это не принципиально. Вот и думайте, как его хранить. Хотите - просто киньте на диск, и все. Хотите - воспользуйтесь средствами ОС (напр. shadow copy) в Windows. Хотите - руками делайте копии этих файлов каждый день, чтобы откатиться. Хотите - используйте какую-нибудь систему контроля версий, напр. локальный SVN, распределенные Git, и т.д. Хотите - закиньте их в СУБД. Хотите - закиньте их в облако (Azure, S3, OenStack, etc, Microsoft Office). И т.д.. Касательно перформанса и "медленного IO в Java". Во-первых, IO медленный не в Java, а по своей сути. Медленный относительно работы с оперативной памяти. Во-вторых, что бы запаривать о проблемах с проиводительностью, нужно быть достоверно уверенным, что они либо уже есть, либо гарантированно появятся. Вот конкретно сейчас вас перформанс парит? Сколько у вас сейчас юзеров? Как часто обращаются к этим файлам? Как быстро растет количество обращений к файлам? Как быстро растет размер этих файлов? Если это просто метаданные, то их вряд ли будет много. И если проведете элементарный математический расчет вкупе с несложным лоад-тестированием, то можете прийти к совершенно неожиданным выводам, начиная от "жопа уже настала, надо срочно что-то менять", до "такими темпами моего занюханного Intel Core i3 хватит еще на 10 лет для этого приложения". Если же все таки проблема есть, то решений опять таки масса. Закинуть файлы в облако, закинуть их в СУБД или кластер СУБД, закинуть их в память, сделать memory mapped, воспользоваться каким-нибудь коробочным кэшом, и т.д., и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.12.2013, 22:14 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
eldarkaaВыдать все данные по указанным параметрам, переданным в сервлет, в указанном формате (doc, pdf, xml...) маловато параметров.))) Где параметры в каком формате выдать данные внутри *.doc? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 00:21 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
eldarkaaидеи такие: сделать вместо обращение с указанием файла, обращение к сущности (DAO) для каждой системы - свое DAO (перегружаемое) так мы избавимся от лишнего чтения файла, но где тогда хранить все эти "запросы-конструкторы?" у тебя просто экспорт данных? Т.е. почему не используется ОРМ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 00:24 |
|
||
|
Архитектурный вопрос.
|
|||
|---|---|---|---|
|
#18+
eldarkaaК каждой системе существует такой файл шаблонов запросов. Сейчас их около 30 и их будет еще больше. одна Система или их несколько - делится по предметной области. Т.е. у каждой системы (ИС) - свои запросы и шаблоны запросов, свой ОРМ и маппинг. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.12.2013, 00:27 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38512551&tid=2127906]: |
0ms |
get settings: |
8ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
183ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
| others: | 223ms |
| total: | 509ms |

| 0 / 0 |
