ThingWorx 高可用性 > 在 ThingWorx HA 中管理 ThingWorx 扩展
在 ThingWorx HA 中管理 ThingWorx 扩展
在 ThingWorx 群集配置中,ThingWorx 扩展存储于数据库中,并在本地文件系统中缓存。这是为了确保每个 ThingWorx 实例都使用存储在数据库中的最新扩展。
在启动期间,ThingWorx 将检查数据库是否存在扩展更新,并在本地应用这些更新。如果数据库中的扩展与本地 ThingworxStorage/extensions 目录中的扩展之间存在差异,ThingWorx 则会将数据库版本视为最新而将本地 ThingworxStorage/extensions 版本视为已过期。
扩展导入过程
导入扩展时,系统会执行以下操作:
1. 对扩展 zip 文件执行校验和,并将其作为 <扩展名称>.chk 文件保存到 ThingworxStorage/extensions/<扩展名称> 目录中。
2. 将 zip 解压缩到 ThingworxStorage/extensions/<扩展名称> 目录。
3. 创建、部署 ExtensionPackage 实体 (及任何其他实体) 并将其持久保存到数据库。
4. 将 zip 文件和校验和持久保存到数据库。
* 
如果系统在上述步骤中失败,则会尝试退出导入。zip 文件最终将被持久保存。这样一来,如果扩展无法部署,则不会将其部署至数据库,同时防止其他备用节点选择此扩展以免导致损坏。
5. 所有服务器都将同步并安装扩展。
同步扩展与最初安装扩展所需的时间相同。群集中的每个服务器均单独同步并最终保持一致。在同步期间,除最初进行导入的服务器外,导入的实体不可用于其他服务器。
如果要导入大量需要较长时间才能完成同步的扩展,那么建议将群集缩小至单个实例,安装扩展,然后再重新放大群集。这样做可提高性能并防止出现最终的一致性问题,因为每个服务器都将在启动时加载新的扩展。
* 
在同步扩展时,系统将备份其他同步进程直到扩展同步完成。
扩展移除过程
删除扩展时,会发生以下情况:
1. 取消部署扩展。
2. 从数据库中删除 zip。
3. 从数据库中删除 ExtensionPackage 实体。
4. 将删除 ThingworxStorage/extensions/<扩展名称> 目录,包括校验和。
5. 所有服务器都将同步并移除扩展。
同步扩展与最初删除扩展所需的时间相同。群集中的每个服务器均单独同步并最终保持一致。
如果要删除大量需要较长时间才能完成同步的扩展,那么建议将群集缩小至单个实例,删除扩展,然后再重新放大群集。这样做可提高性能并防止出现最终的一致性问题。
* 
在同步扩展时,系统将备份其他同步进程直到扩展同步完成。
这对您有帮助吗?