集群常见报错及解决方案

  • 文档创建者:Vic.zhang
  • 编辑次数:13次
  • 最近更新:Roxy 于 2020-04-17
  • 1. 集群前端报错

    1.1 Redis 集群节点异常

    1.1.1 问题现象

    1573107910501965.png

    1.1.2 报错原因

    某个节点出现异常或已经宕掉,无法继续在 Redis 集群中提供服务。

    1.1.3 解决方案

    1)登录 Redis 集群,输入cluster nodes检查 Redis 集群状态,如下所示:

    ./redis-cli -h ip -p 端口 -a 密码 #客户端远程连接某个节点,输入对应的ip、端口、密码

    1573108051423684.png

    当检查到某个 Redis 节点是宕机(fail)状态,请及时检查该 Redis 节点进程,若进程还在,则 kill 掉进行重启,若进行不在,则直接启动该节点,启动后再次进行检查是否恢复。

    2)如果想进一步确认 Redis 集群的可用性,可以连接某个主节点(master)测试是否能够写入 key

    正常情况如下所示:

    1573107999604414.png

    异常情况如下所示:

    1573108006707753.png

    当检测到 Redis 集群是无法写入(down)的状态时,此种异常较为罕见,建议重启整个 Redis 集群。

    1.2 节点间 JAR 包不一致报错

    1.2.1 问题现象

    1573107984398622.png

    1.2.2 报错原因

    节点启动过程会与第一个加入集群的节点对比jar包是否一致,若检测到不一致情况,则前端进行异常展示并给出详细的异常信息。

    1.2.3 解决方案

    参照异常提示, 检查各个节点下的 JAR 包并进行调整,调整完毕后重启节点,再观察是否还有报错。

    1.3 同步失败报错

    1.3.1 问题现象

    1573107972391888.png

    1.3.2 报错原因

    该节点与文件同步基准节点进行文件同步时,出现同步错误或者请求超时,重复尝试 3 次仍然无法成功,则前端进行异常展示。

    1.3.3 解决方案

    检查节点间通信、网络状态是否正常,若有异常则及时进行调整,若一切正常仍为报错,合作客户可联系帆软技术支持进行反馈,非合作客户可以前往帆软论坛反馈。

    2. 平台异常通知

    集群为了便于及时发现并排查问题,针对异常情况也会进行异常通知,通知包括邮件通知、短信通知、消息通知,平台开通集群异常提醒即可收到。

    异常原因通知内容解决方案
    JAR 包不一致节点#nodename#与节点#nodename#的 JAR 包不一致,将影响集群工程的稳定性,请前往集群节点管理页面查看详细异常信息,并及时处理。1.2 节中已给出
    节点脱离集群提醒节点#nodename#已脱离集群环境,可能原因为:节点FullGC、节点宕机、节点间通信不畅、节点负载过高、其他异常。为避免影响用户使用,请及时检查该节点状态,若该节点长时间无法自行恢复,则建议重启该节点。

    前往集群节点管理界面,看看报脱离的节点是否还存在。

    1)如果节点已经消失,在服务器中查看应用进程,若进程还在,则kill掉再进行重启,若进程已经不在了,则直接重启该节点工程;

    2)如果节点还存在,则前往智能运维-内存管理或者直接进入服务器内查看节点的内存/CPU占用情况,看看是否有飙升现象,如果节点内存/CPU过高,则重启该节点;

    上面两种方法仅为临时解决方案,造成节点脱离的原因大致有三个:负载过高导致频繁FullGC、线程阻塞导致内存/CPU飙升、节点宕机。如果想要彻底排查解决问题,合作客户可以联系技术支持协助排查,非合作客户可以在帆软论坛反馈。

    节点间时间不一致节点#nodename#与节点#nodename#系统时间相差超过XX秒,为避免影响用户使用,请及时调整使各节点时间保持一致。

    检查各个节点的时间是否一致,当节点间系统时间误差超过30s时会进行报错提醒,因为包括登录等基础功能的使用可能会受到时间不一致的影响。

    windows系统可以手动将各个节点的系统时间调为一致,Linux系统调整节点间时间可以参考文档:Linux 系统如何配置各个节点的时间一致性?-https://help.finereport.com/doc-view-2727.html

    Redis集群节点异常Redis集群#ip:port#节点已无法正常使用,可能原因为:节点宕机、内存已满、其他异常。为避免影响用户使用,请前往状态服务器配置页面查看详情,并及时处理。1.1 节中已给出
    文件服务器宕机文件服务器出现无法正常读写的情况,可能原因为:文件服务器宕机、磁盘已满、其他异常。为避免影响用户使用,请及时检查文件服务器状态。

    如果是启动后发现连接不上文件服务器,工程会自动恢复为节点间自动同步模式,保证工程能够起来,此时我们经过从文件服务器状态,防火墙是否开放端口等角度进行排查。


    如果是使用过程中出现了这个报错,则从三个方向进行排查:

    1)检查文件服务器的状态,看看是否是文件服务器宕机了;

    2)检查配置的WEB-INF目录是否还能正常读写;

    3)检查文件服务器的磁盘空间剩余情况,可能是磁盘满了导致无法读写,若磁盘满需要扩充磁盘空间。

    文件同步失败提醒集群节点#nodename#与基准节点存在不一致文件,且无法自动同步。请检测该节点状态1.3 节中已给出

    3. 远程设计

    3.1 服务器断开连接后远程设计没有提示断开

    3.1.1 问题现象

    设计器远程设计切换到某个节点之后,当服务器断开连接,远程设计没有提示断开连接。

    3.1.2 原因分析

    1)现在弹窗触发 是基于Socket.IO 监听 disconnect 事件,但是这个事件断开后需要几秒到几十秒不等才会被响应 (这个时间没法把控  取决于断开的形式:

    • 如果是服务器直接关闭的话,可以很快响应;

    • 如果是 vpn 断开的话 响应较慢,响应后就会弹窗。

    2)远程设计有自己的心跳机制,30s 进行一次连接校验。若连续超过3次校验失败,则判断为断开连接,这个目前也有断开的事件  90s+后被响应的情况,时间是可控的可配置的。

    3.1.3 解决方案

    并不是远程设计没有断开,而是提示离开集群环境的响应弹窗出现速度比较慢,此问题在后续会进行优化。

    且后续产品中远程设计心跳断开也会提供提示。

    3.2 启用 https 远程设计报错

    3.2.1 问题现象

    切换工作目录到远程环境,启用 https,服务器关掉之后,页面不会有提示。后台日志有报错;此时点击模板,会提示模板不存在。如下图所示:

    1.png

    3.2.2 原因分析

    现有的远程设计 websocket 不支持 https,目前仅支持 http,而远程连接断开提醒是基于 websocket 实现,所以不支持页面不会有提示。

    3.2.3 解决方法

    使用 http 模式即可。

    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!