ThingWorx высокой доступности > Управление расширениями ThingWorx в конфигурации ThingWorx высокой доступности
Управление расширениями ThingWorx в конфигурации ThingWorx высокой доступности
В конфигурации ThingWorx высокой доступности (HA) расширения ThingWorx сохраняются в базе данных и кэшируются в локальной файловой системе. Это необходимо, чтобы гарантировать, что каждый экземпляр ThingWorx использует последние расширения, сохраненные в базе данных.
Во время запуска ThingWorx проверяет базу данных на наличие обновлений расширений и применяет их локально. При наличии расхождений между расширениями в базе данных и расширениями в локальном каталоге ThingworxStorage/extensions ThingWorx считает версию в базе данных последней, а версию в каталоге ThingworxStorage/extensions устаревшей.
Процесс импорта расширений
При импорте расширений система выполняет следующие действия.
1. Вычисляет контрольную сумму для zip-файла расширения и сохраняет ее в каталоге ThingworxStorage/extensions/<наименование расширения> как файл <наименование расширения>.chk.
2. Распаковывает ZIP-файл в каталог ThingworxStorage/extensions/<наименование расширения>.
3. Создает, развертывает и сохраняет сущность ExtensionPackage (и любые другие сущности) в базе данных.
4. Сохраняет ZIP-файл и контрольную сумму в базе данных.
* 
Если при выполнении предшествующих шагов произойдет сбой системы, будет предпринята попытка откатить импорт. ZIP-файл сохраняется последним. Это делается для того, чтобы в случае сбоя развертывания расширения оно не было развернуто в базе данных и было недоступно для выбора его другими резервными узлами, что могло бы вызвать повреждение данных.
5. Все серверы будут синхронизироваться и устанавливать расширение.
Синхронизация расширения может занять столько же времени, сколько и первоначальная установка расширения. Каждый сервер в кластере синхронизируется по отдельности, и в конце концов они будут согласованы. Во время синхронизации импортированные сущности будут доступны только на том сервере, где первоначально выполнялся импорт; на других серверах они будут недоступны.
Если импортируется большое количество расширений или расширения, требующие много времени для синхронизации, рекомендуется уменьшить размер кластера до одного экземпляра, установить расширения, а затем масштабировать кластер обратно. Это более эффективный вариант, предотвращающий возможные проблемы с согласованностью, поскольку новые расширения будут загружаться каждым сервером по мере их запуска.
* 
На время выполнения синхронизации расширения, пока она не завершится, для других синхронизируемых файлов будут созданы резервные копии.
Процесс удаления расширения
При удалении расширений происходит следующее:
1. Расширение не развернуто.
2. ZIP-файл удаляется из базы данных.
3. Сущность ExtensionPackage удаляется из базы данных.
4. Каталог ThingworxStorage/extensions/<наименование расширения> удаляется, включая контрольную сумму.
5. Все серверы будут синхронизироваться и удалять расширение.
Синхронизация расширения может занять столько же времени, сколько и первоначальное удаление расширения. Каждый сервер в кластере синхронизируется по отдельности, и в конце концов они будут согласованы.
Если удаляется большое количество расширений или расширения, требующие много времени для синхронизации, рекомендуется уменьшить размер кластера до одного экземпляра, удалить расширения, а затем масштабировать кластер обратно. Это более эффективный вариант, предотвращающий возможные проблемы с согласованностью.
* 
На время выполнения синхронизации расширения, пока она не завершится, для других синхронизируемых файлов будут созданы резервные копии.
Было ли это полезно?