分享
查看: 1005|回复: 0

[分享] ThingJS-X环境迁移问题及对应方案

[复制链接]

ThingJS-X环境迁移问题及对应方案

发表于 2023-8-21 09:13:20 来自 分享 阅读模式 倒序浏览
zzv_icon1005 zzr_icon0 查看全部
本帖最后由 15234496108 于 2023-8-21 09:33 编辑

【首先注意:在迁移过程不能随意压缩解压缩迁移资源包,不同压缩软件或压缩方式,容易引起文件损坏!!!】

一、简介
使用ThingJS-X迁移时,操作如【图1】所示,也就是在“导出数据”和“导入数据”过程中出现的问题,此文将曾经出现的迁移问题列举整理,导致迁移问题的现象、原因、排查步骤以及解决方法。
     迁移涉及客户端(浏览器在哪哪就是客户端)、服务端(部署包在哪部署哪就是服务端)、数据库、及迁移文件还有客户端和服务端之间的网络几个要素。
     故现象、原因、排查步骤以及解决方法也会从几方面进行介绍。
     ThingJS-X环境迁移问题及对应方案
为方便了解问题发生过程以及排查顺序,几个要素在迁移过程所在的流程节点如下面图所示。
ThingJS-X环境迁移问题及对应方案
二、问题发生的原因
2.1 迁出问题

客户端
    1.浏览器所在客户端电脑硬盘空间不足,导致迁出失败。
服务端
    2.服务所在服务端森X服务和文件权限不匹配导致导出失败;
      举例:服务端的启动用户为uinnova,非root,但导出的文件夹里有所属于root的文件夹,uinnova用户没有root文件的        权限。
    3.服务端硬盘空间不足。(当ES数据库在硬盘空间达到95%及以上时会锁定数据库此时无法进行操作)
    4.服务端内存不足。(将数据库文件及产品资源文件打包压缩成压缩包需要内存,内存不足时打包会失败)
网络
    5.网络超时,比如网速慢、比如网络路由中使用了第三方组件Nginx,Nginx超时。
2.2 迁入问题客户端
1.浏览器使用了谷歌翻译,然后在这个传统下导出迁移包然后在导入另一个环境。
服务端
    2.服务端硬盘空间不足。
    3.森X服务Java运行内存不足。
网络
    4.网络超时,比如网速慢、比如网络路由中使用了第三方组件Nginx,Nginx超时。
迁移文件
    5.迁移包不符合规则。
    6.迁移包太大。
三、同意排查和处理思路
1、检查浏览器版本比如,Chrome浏览器需要98以上,浏览器版本太低迁入后可能显示的页面样式有问题。
  检查方法:
  进入浏览器设置查看版本信息,不同浏览器不同以谷歌浏览器为例。
  ThingJS-X环境迁移问题及对应方案
  解决方法:升级浏览器
2、检查迁移包大小
    一般迁移包太大发生在迁入过程,太大时导入时有如下提示报错,一般整个环境迁移包有2g+算大,其中模型文件对迁移影响较大一般有1g+算大。
    ThingJS-X环境迁移问题及对应方案
   检查方法:
     一般整个环境迁移包有2g+算大,其中模型文件对迁移影响较大一般有1g+算大。
   处理方法:
     1、在迁出时分模块迁出,然后分模块迁入。大部分情况这种处理方式最简单,并且能解决大部分迁移问题。或者
     2、修改/uino/thingjsx-server/bin/start.sh文件,把-Xms -Xmx改大一点(两个值必须保持一致),改完重启森X即可
     ThingJS-X环境迁移问题及对应方案
3、检查服务器/客户端的硬盘/内存空间相关信息:一般要求内存剩余空间大于等于2GB,硬盘空间使用率不超过85%。
Linux系统检查方法:
    a.检查内存使用情况:free -h,画红框部分free大于2GB一般说明处于安全状态
    ThingJS-X环境迁移问题及对应方案
    b.检查硬盘使用情况:df -h,画红框部分已用%小于85%一般说明处于安全状态。
    ThingJS-X环境迁移问题及对应方案
Linux硬盘满处理方法:
    参考FAQ:https://help.thingjs.com/hc/kb/article/1566171/,然后分别关闭森X服务,ES数据库,启动ES数据库,在启动森X服务。
Windows系统检查方法:
   a.检查内存使用情况:ctrl + alt +del 三个键一起按,点击任务管理器,空余部分大于2GB一般说明处于安全状态。
   ThingJS-X环境迁移问题及对应方案
   b.检查硬盘使用情况:我的电脑,计算下使用率%小于85%一般说明处于安全状态。
   ThingJS-X环境迁移问题及对应方案
  Windows硬盘满处理方法:
    清理磁盘空间,然后分别关闭森X服务,ES数据库,启动ES数据库,在启动森X服务。
4、网络相关(超时)问题,检查网络及网络相关组件
检查方法:
   此类问题一般伴随,在浏览器输入F12,观察console有
    a.time-out字样
    b.network error 字样  
    c.net::err_content_decoding_failed或net::err_failed 200 字样
    以报错net::err_failed 200为例
   ThingJS-X环境迁移问题及对应方案
解决方法:
    a.对于Nginx超时。
       对于零代码平台修改Nginx配置如下,修改proxy_read_timeout 以及proxy_send_timeout 后面的数字。
       ThingJS-X环境迁移问题及对应方案
    b.对于Tomcat超时。
       打开ThingJS-X系统的配置文件,路径如下下 :Thing-X\uino\ThingJSX\thingjsx-server\conf\application-system.properties设置超时时间,改大一些:
       ThingJS-X环境迁移问题及对应方案
      比较方便的做法是两个都更改。
      特殊情况(发生频率很低),森x前端接口配置的超时时间问题
       ThingJS-X环境迁移问题及对应方案
      解决方法:
    需要修改/uino/thingjsx-server/src/main/webapp/auth/js目录下的chunk-vendors.xxxxx.js文件,搜索timeout,将timeout=36e5改为timeout=36e6后可以迁出。
      ThingJS-X环境迁移问题及对应方案
5、检查权限
检查方法:
      一般权限问题发生在迁出过程,点击导出数据,界面会提示write out file error如下图所示,此时需要检查服务启动权限和文件权限。
     ThingJS-X环境迁移问题及对应方案
检查森X服务启动权限和文件权限方法,如果两个图红框部分不匹配说明权限不一致,需要将权限变成一致,一般出现权限不匹配的背景是用root启动过森X服务然后又使用其他用户启动过森X服务,通常做法是重新用root方式启动森X服务。
a.检查文件权限。
    输入ll,红框内有root表示文件权限是root;
    ThingJS-X环境迁移问题及对应方案
b.检查森X服务权限
    输入 ps -ef|grep thing;
    ThingJS-X环境迁移问题及对应方案
处理方法:
    将文件和服务的用户权限变成一致,比较简单的做法是,使用root启动森X服务。
6、ES状态只读
    一般权限问题发生在迁入过程,点击导入数据,本来服务器中硬盘空间趋近于95%,然后此时继续导入数据,服务器硬盘空间很有可能超过95%,此时森X服务会停止运行,并且启动不成功,此时需要检查ES状态。
检查方法:
        - 查看健康状态 curl -u admin:Admin@123 http://ip:9200/_cat/health;
        -返回[FORBIDDEN/12/index read-only / allow delete (api)];
        说明ES状态为只读。
解决方法
        可参考FAQ“如何解决ES数据库只读模式问题”进行查询处理。

avatar
游客~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

130700ppkpl8x3t7tt1b1t