powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / best practices: реализация DocumentService
23 сообщений из 23, страница 1 из 1
best practices: реализация DocumentService
    #39970209
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задача - реализовать документ сервис для клиентского профиля в распределенном приложении. Т.е. имеется web-ui через который для профиля клиента нужно закачать на серверную часть докменты офисного формата. Задача касается реализации серверной части.

Prerequisites: Серверная часть будет работать в кластере К8s (pod) ( для простоты понимания в docker контейнере)


Реализация:
1. хранить документы непосредственно в базе данных
2. хранить документы в файловой системе
3. Запустить какой-то существующий свободный document service в контейнере (какой рекомендуете)

Вопрос в том, как это правильно сделать, какой вариант лучше с учетом архитектуры приложения.

спасибо
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970233
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet
Задача - реализовать документ сервис для клиентского профиля в распределенном приложении. Т.е. имеется web-ui через который для профиля клиента нужно закачать на серверную часть докменты офисного формата. Задача касается реализации серверной части.

Prerequisites: Серверная часть будет работать в кластере К8s (pod) ( для простоты понимания в docker контейнере)


Реализация:
1. хранить документы непосредственно в базе данных
2. хранить документы в файловой системе
3. Запустить какой-то существующий свободный document service в контейнере (какой рекомендуете)

Вопрос в том, как это правильно сделать, какой вариант лучше с учетом архитектуры приложения.

спасибо


Все зависит от бизнес-требований. В том числе возможен вариант хранить и там и там.
Это как спрашивать какую мне взять машину? И все не разбираясб начинают советовать - бэха, мерс, вольво бери дурень! А потом оказывается что нужен был карьерный самосвал
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970252
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet,
1. Есть бд которые хранят файлы как ссылки а они физически на диске
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970254
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
kadet,
1. Есть бд которые хранят файлы как ссылки а они физически на диске

А есть еще MongoDB - document-oriented Nosql solution,
а еще есть elasticsearch + solr - для текстового поиска, и еще охерелиард решений, но какая разница если непоянтно что конкретно нужно от системы
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970263
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да. При такой обобщённой постановке Mongo подходит.
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970293
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
PetroNotC Sharp
kadet,
1. Есть бд которые хранят файлы как ссылки а они физически на диске

А есть еще MongoDB - document-oriented Nosql solution,
а еще есть elasticsearch + solr - для текстового поиска, и еще охерелиард решений, но какая разница если непоянтно что конкретно нужно от системы

Да. ТСу надо расширить его постановку из двух пунктов - файлы/бд)))
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970294
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet,
Делай Хранилище отдельным проектом.
Любой документ это урл ссылка.
sql.ru/rest-api-doc/......id12e4677.pdf
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970295
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще важно узнать что не было сказано. Например - будут ли связи между документами.
Будет ли схема документа жесткая или она будет во времени изменяться.

Будут ли зависимые обновления. Надо это учесть чтоб не получить аномалии.

Документ хорош до тех пор пока его не изменяют.

Один мой хороший знакомый (Mongo /MEAN разработчик)
в шутку сказал - хочешь потерять документ навсегда - положи его в Mongo.
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970328
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Еще важно узнать что не было сказано. Например - будут ли связи между документами.
Будет ли схема документа жесткая или она будет во времени изменяться.

Будут ли зависимые обновления. Надо это учесть чтоб не получить аномалии.

Документ хорош до тех пор пока его не изменяют.

Один мой хороший знакомый (Mongo /MEAN разработчик)
в шутку сказал - хочешь потерять документ навсегда - положи его в Mongo.

Тип того)
Еще надо понимать нужен ли полнотекстовый поиск, нужны ли одновременные апдейты нескольких документов(a.k.a транзакции) ну и еще куча вопросов
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970332
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
kadet,
Делай Хранилище отдельным проектом.
Любой документ это урл ссылка.
sql.ru/rest-api-doc/......id12e4677.pdf


спасибо.
можете что-то рекомендовать из open-source, чтобы самому это не разрабатывать ?
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970337
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
mayton
Еще важно узнать что не было сказано. Например - будут ли связи между документами.
Будет ли схема документа жесткая или она будет во времени изменяться.

Будут ли зависимые обновления. Надо это учесть чтоб не получить аномалии.

Документ хорош до тех пор пока его не изменяют.

Один мой хороший знакомый (Mongo /MEAN разработчик)
в шутку сказал - хочешь потерять документ навсегда - положи его в Mongo.

Тип того)
Еще надо понимать нужен ли полнотекстовый поиск, нужны ли одновременные апдейты нескольких документов(a.k.a транзакции) ну и еще куча вопросов


спасибо.
заказчику такую фишку (полнотекстный поиск по документу) не предлагал ... и не буду, ибо придется отдельный сервис создавать чтобы такой поиск реализовать
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970338
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet

можете что-то рекомендовать из open-source, чтобы самому это не разрабатывать ?

а что там разрабатывать ? Две процедуры SAVE и GET ?

Другое дело, что может захотеться кучу бизнес-специфических фичь накрутить. Например, когдя я делал нечто подобное, то я хранил еще hash файла и при попытке сохранить в БД дубли линковал файлы на одну и ту же запись в СУБД.
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970339
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet
забыл ник
пропущено...

Тип того)
Еще надо понимать нужен ли полнотекстовый поиск, нужны ли одновременные апдейты нескольких документов(a.k.a транзакции) ну и еще куча вопросов


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

Так ты скажи что предлагал, возможно список решений и сузится. Пока это все гадание на кофейной гуще. И сущая мелочь по твоему разумению может развернуть совет на 180 градусов
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970349
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet
забыл ник
пропущено...

Тип того)
Еще надо понимать нужен ли полнотекстовый поиск, нужны ли одновременные апдейты нескольких документов(a.k.a транзакции) ну и еще куча вопросов


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

И правильно. До самого последнего не предлагай. Полнотекстовые индексы хороши только
при определённых гарантиях. Например когда документы стали историческими. А если
у тебя есть активные транзакции по этим документам - то контракт между документом
и индексом становится слабым. Тоесть мы не можем гарантировать что данная транзакция
уже проиндексирована. Придется как-то выкручиваться и придумывать eventual-consistency
или какие-то схемы ожидания.
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970355
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Из готовых платформ - Documentum, sharePoint. Работал только с первым - по ощущениям довольно-таки унылое говно, но там предыстория такая что менеджер получил откат на покупке и нам активно его втяюхивали, хотя по фичам нам надо было много кастомного, в итоге сделали но плевались. Правда это было лет 8 назад
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970369
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для более наглядного представления об описываемом предмете, я подвесил class diagram.

Поле "uri" в Document является спорным, т.к. окончательного решения у меня нет (поэтому и создал топик).

У меня мысли такие (были / есть):
1. В качестве базы данных склоняюсь к mysql.
2.1. Я думал изначально все документы, которые будут описанны объектом "Document" хранить в его поле "data".
Преимущества очевидны: данные всегда будут синхронны.
Недостатоки:
- Как себя будет вести мускул если пользователь его напичкает "по самое немогу".
- Отразится ли это на производительности базы данных?
- Как обслуживать мускул с учетом того, что он будет в контейнере? Как добавить дополнительное место для мускула? Как обеспечить backupбазы данных, работающей в контейнере ?

2.2 Как вариант - документы конкретного пользователя хранить в файловой системе, а ссылку на них в Document.uri
Преимущества:
- наполнить мускул будет "по самое немогу" только текстом будет сложнее и потребуется больше времени
- производительность будет условно стабильная и хорошая достаточно долго
Недостатки:
- синхронизация подверженна рискам, т.е. соответствие записи в Document.uri и фактическому расположению документов в файловой системе
- как с умом организовать backup как базы данных, так и файловой системы, где будут хранится документыб с учетом того, что как БД так и кусок фауловой системы будут "сидеть" в контейнере ?

2.3 То же что и 2.2, только вместо файловой системы контейнерезировать какой-нибудь document service

Вот вокруг всего этого я "кручусь" и пытаюсь найти решение.

PS можно использовать NoSQL (mongoDB), но я в этом применении не вижу каких-то особых преимуществ
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970399
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
С документом то что система делать будет? Просто положить - потом прочитать?
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970404
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet,
А зачем терабайтную бд в контейнер?
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970406
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet
для более наглядного представления об описываемом предмете, я подвесил class diagram.

Поле "uri" в Document является спорным, т.к. окончательного решения у меня нет (поэтому и создал топик).

У меня мысли такие (были / есть):
1. В качестве базы данных склоняюсь к mysql.
2.1. Я думал изначально все документы, которые будут описанны объектом "Document" хранить в его поле "data".
Преимущества очевидны: данные всегда будут синхронны.
Недостатоки:
- Как себя будет вести мускул если пользователь его напичкает "по самое немогу".
- Отразится ли это на производительности базы данных?
- Как обслуживать мускул с учетом того, что он будет в контейнере? Как добавить дополнительное место для мускула? Как обеспечить backupбазы данных, работающей в контейнере ?

2.2 Как вариант - документы конкретного пользователя хранить в файловой системе, а ссылку на них в Document.uri
Преимущества:
- наполнить мускул будет "по самое немогу" только текстом будет сложнее и потребуется больше времени
- производительность будет условно стабильная и хорошая достаточно долго
Недостатки:
- синхронизация подверженна рискам, т.е. соответствие записи в Document.uri и фактическому расположению документов в файловой системе
- как с умом организовать backup как базы данных, так и файловой системы, где будут хранится документыб с учетом того, что как БД так и кусок фауловой системы будут "сидеть" в контейнере ?

2.3 То же что и 2.2, только вместо файловой системы контейнерезировать какой-нибудь document service

Вот вокруг всего этого я "кручусь" и пытаюсь найти решение.

PS можно использовать NoSQL (mongoDB), но я в этом применении не вижу каких-то особых преимуществ

Вам в ветку "Разрабртка субд или ветку mysql
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970409
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet,
Возьмите ту бд с которой работали и которую знаете
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970438
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kadet,

Не истины ради, а флейма для.

Хранилище на zookeeper
Букварик

А вот коробочки :-)
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970524
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
забыл ник
С документом то что система делать будет? Просто положить - потом прочитать?


да, пока только так
...
Рейтинг: 0 / 0
best practices: реализация DocumentService
    #39970535
kadet
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
kadet,

Не истины ради, а флейма для.

Хранилище на zookeeper
Букварик

А вот коробочки :-)


спасибо,
познавательно
...
Рейтинг: 0 / 0
23 сообщений из 23, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / best practices: реализация DocumentService
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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