Directum RX 3.3: развитие архитектуры

23 2

Напомним, что в версии 3.2 появились микросервисы, каждый из которых отвечает за определенную функциональность в системе Directum RX. С их помощью обеспечивается гибкое распределение нагрузки по серверам и стабильность работы системы. В версии 3.3 состав микросервисов пополнился:

  • Сервис хранилищ – это сервис, который размещает большой объем данных о содержимом версий документов Directum RX в файловое хранилище. В дальнейшем по запросу клиентских приложений и других сервисов он предоставляет данные из хранилища. Ранее этот сервис представлял собой веб-приложение, которое устанавливалось вместе с сервером приложений, и отделить его физически не было возможности. Теперь сервис стал микросервисом и, соответственно, его можно устанавливать отдельно.
  • Сервис индексирования – это новый сервис, который используется для полнотекстового поиска. С помощью сервиса хранилищ он получает содержимое документов из файлового хранилища, индексирует их и передает документы поисковой системе. Таким образом, при выполнении поиска система анализирует индексы и быстрее отображает результаты.

Почему добавлены именно эти сервисы? Ответ прост. Прежде всего пользователи Directum RX работают с документами: согласуют, редактируют, подписывают, а также часто ищут их в системе. Объемы хранилищ растут, поиск усложняется, и все это в совокупности создает значительную нагрузку на систему. Новые сервисы позволили масштабировать функциональность работы с поиском и хранилищем. Более подробно о каждой ситуации расскажем далее.

Хранение документов в файловом хранилище

Ранее на этапе установки системы администратор мог выбрать, куда сохранять содержимое всех документов системы: в SQL-хранилище базы данных или в файловое хранилище. Инфраструктура, организованная с сохранением данных в SQL-хранилище, была не оптимальна. Как правило, большую часть базы данных занимали документы, 90% которых практически не менялись. С ростом их количества увеличивалось время на обслуживание базы данных и место, необходимое для хранения бэкапов. Кроме того, СУБД PostgreSQL не рекомендована для хранения больших документов.

Чтобы упростить настройку и разгрузить базу данных, в новой версии принято решение уйти от поддержки SQL-хранилищ. Таким образом, теперь содержимое документов всегда сохраняется в файловое хранилище – в локальную или сетевую папку. За размещение данных в файловом хранилище отвечает обновленный сервис хранилищ (StorageService).

Благодаря использованию файловых хранилищ:

  • сокращается объем базы данных и, как следствие, упрощается ее обслуживание, резервное копирование данных, восстановление, дефрагментация дисков БД и прочее.
  • полнотекстовый поиск документов работает быстрее. При каждом изменении содержимого документа сервис индексирования напрямую получает данные из файловых хранилищ, а не запрашивает их в базе данных путем сложных операций.

Перенос данных в файловое хранилище

Если вы ранее сохраняли содержимое документов в SQL-хранилище, то переместить данные в файловое хранилище не составит труда. При обновлении системы необходимо заполнить лишь один параметр STORAGE_PATH – путь до папки, в которую нужно переместить данные.

Особенности установки хранилища

Теперь при установке системы достаточно указать порт сервиса хранилищ и путь до папки, в которую помещается содержимое документов:

Для локальной установки системы Directum RX можно указать другое файловое хранилище, например, для документов, которые создаются во время проверки изменений разработки.

После установки агент управления сервисами ServiceRunner автоматически запускает сервис хранилищ. Соответственно, конфигурационный файл с настройками сервиса теперь располагается в папке с агентом.

По инструкции «Directum RX. Инструкция по установке сервисов на выделенном сервере» сервис хранилищ можно развернуть на отдельном сервере, например, на том, где располагается файловое хранилище. В этом случае при обращении клиентских приложений запросы напрямую отправляются к серверу хранилищ, в обход сервера приложений, что сокращает потребление трафика. Инструкция входит в комплект поставки, а также доступа на сайте поддержки Directum RX.

Чтобы обеспечить сохранность документов в файловом хранилище, после установки или обновления системы рекомендуется по инструкции настроить его резервное копирование.

Новый полнотекстовый поиск документов

В крупных компаниях за годы работы накапливаются колоссальные объемы данных. Возможность быстро найти нужный документ в таких условиях – важное требование к современной информационной системе.

В Directum RX реализован новый механизм полнотекстового поиска документов, основанный на поисковой системе Elasticsearch. Документы индексируются в ней при помощи нового сервиса индексирования (IndexingService).

Преимущества нового поиска:

  • работа с любой поддерживаемой СУБД. Ранее полнотекстовый поиск документов использовал механизмы Microsoft SQL Server, поэтому его нельзя было применять в системах с PostgreSQL;
  • высокая скорость работы при любых объемах данных. Достигается за счет гибкой настройки в зависимости от суммарного размера документов;
  • улучшенная точность поиска. Всегда учитываются словоформы, а также популярные синонимы и сокращения. Критерии поискового запроса можно дополнительно уточнить с помощью двойных кавычек и символов ~, *, -;
  • горизонтальная масштабируемость при использовании дополнительных экземпляров Elasticsearch.

Установка и индексирование

Поисковую систему Elasticsearch можно развернуть самостоятельно или использовать готовую виртуальную машину на базе ОС Ubuntu. Дистрибутив Elasticsearch и виртуальная машина предоставляются бесплатно по запросу.

Для работы Elasticsearch требуется 8-ядерный процессор с частотой 2 ГГц, 16 Гб оперативной памяти и SSD-диск. Объем дискового пространства определяется из расчета, что размер индексов в среднем от 3 до 10 раз меньше суммарного размера документов.

Сервис индексирования устанавливается инсталлятором системы Directum RX.

После установки запускается утилита, которая выполняет первоначальную индексацию текстов документов. В результате в проводнике Directum RX в окне поиска документов становится доступен критерий Текст.

При необходимости полнотекстовый поиск можно настроить позже, указав параметры в конфигураторе и запустив утилиту вручную. Если требуется проиндексировать большой объем данных, в параметрах запуска можно задать период индексации.

Администрирование поиска

Администратор отслеживает текущее состояние Elastcisearch с помощью панели управления Kibana.

Если установлен инструмент разработки, для отладки в локальной системе и работы поиска в продуктивной системе можно использовать один адрес Elasticsearch. В этом случае документы различаются по индексам.

В стандартную поставку Directum RX входит пример словаря синонимов. Администратор может добавить в него собственные записи.

С версии 3.3 используется только новый полнотекстовый поиск документов. При обновлении системы его необходимо настроить.

***

Оцените работу новых сервисов Directum RX. Ждем ваши отзывы и комментарии!

"СУБД PostgreSQL не рекомендована для хранения больших документов" - можно узнать причину? MSSQL рекомендована получается? 
Я вижу что в статье описан в принципе уход от хранилищ в БД, хотелось бы получить уточнение по данном пункту, опечатка или какая то причина есть? (скорее всего из за того что механизм полнотекстового поиска был основан на инструментарии MSSQL, но вдруг что то ещё. Хотя в Postgre тоже можно организовать полнотекстовый поиск.)

"Благодаря использованию файловых хранилищ:
...
полнотекстовый поиск документов работает быстрее." 
Как так, работа с внешним хранилищем быстрее, чем с данными в базе?

Как быть при обновлении системы, когда в предыдущей версии, хранилище было в БД? Насколько знаю нет возможности переопределить хранилище в уже установленной системе. Или как то можно?

Антон Гончаров

В 3.3 содержимое документов DirectumRX сохраняется в файловое хранилище – в локальную или сетевую папку. SQL-хранилища для хранения текстов документов больше не поддерживаются. Для компаний, которые использовали для хранения документов базу данных, разработан механизм миграции данных в файловое хранилище. При обновлении на версию 3.3 данные документов автоматически переносятся в хранилище, которое укажет администратор. Подробнее можно почитать в справке

Антон Гончаров: обновлено 21.04.2020 в 11:33

Авторизуйтесь, чтобы написать комментарий