反馈已提交

网络繁忙

集群问题排查

  • 文档创建者:Vic.zhang
  • 历史版本:38
  • 最近更新:Carly 于 2023-06-15
  • 概述

    本文汇总了集群常见的问题及解决方案,帮助与指导用户快速找到想要的答案。

    相关文档链接:

    --- 集群前端报错 ---

    该Redis节点无法正常使用,请及时检查该节点状态

    问题描述:

    节点管理报错:该Redis节点无法正常使用,请及时检查该节点状态,如下图所示:

    1573107910501965.png

    原因分析:

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

    解决方案:

    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 集群。

    该节点与XXX节点的JAR包不一致

    问题描述:

    节点管理报错:该节点与XXX节点的jar包不一致,请及时更新jar包并重启该节点,如下图所示:

    1573107984398622.png

    原因分析:

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

    解决方案:

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

    集群节点XXX与基准节点存在不一致文件

    问题描述:

    节点管理报错:集群节点XXX与基准节点存在不一致文件,且无法自动同步,请检查该节点状态,如下图所示:

    1573107972391888.png

    原因分析:

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

    解决方案:

    检查节点间通信、网络状态是否正常,若有异常则及时进行调整。

    异常模块:CLUSTER_MEMBER_MODULE

    问题描述:

    集群节点页面标红,报错为:该节点存在异常的模块,暂无法正常提供服务,异常模块:CLUSTER_MEMBER_MODULE,如下图所示:

    排查步骤及解决方案:

    可参考:集群节点标红异常模块CLUSTER_MEMBER_MODULE

    Could not get a resource from the pool

    问题描述:

    报表界面访问的时候,报错:Could not get a resource from the pool 如需访问请联系管理员,如下图所示:

    1666062569710972.jpg

    原因分析: 

    • Redis 宕机

    • 网络异常

    • 工程运行时修改了 Redis密码

    解决方案:

    • 如果是 Redis 宕机或网络异常,正常排查和解决即可

    • 如果是 Redis 修改了密码需重启 Tomcat 工程,重启工程后进入平台页面重新配置 Redis 密码即可

    Redis由单机模式变为集群模式无法登录

    问题描述:

    集群部署时,状态服务器为 Redis,Redis 是单机非集群模式。

    突然无法访问,访问报表登录http://ip:port/webroot/decision页面时,提示 Redis 的错误。无法登录,也无法修改状态服务器模式。

    原因分析:

    主要是状态服务器 Redis 的模式改变造成无法访问。Redis 模式由单机改为集群,状态服务器的模型由单机改为集群。

    解决方案:

    1)登录 MySQL 数据库,修改数据库表信息,SQL 语句如下:

    update fine_conf_entity set value='false' where id='StateServerConfig.clusterMode';

    update fine_conf_entity set value='false' where id='FineClusterConfig.params.cluster';

    2)把各节点下的WEB-INF/config/cluster.config删除。

    3)然后停止服务,重启各节点即可。

    --- 远程设计 ---

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

    问题描述:

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

    原因分析:

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

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

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

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

    解决方案:

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

    启用 https 远程设计报错

    问题描述:

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

    1.png

    原因分析:

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

    解决方法:

    使用 http 模式即可。

    --- 集群启动后各节点只能看到自身节点信息 ---

    集群间无法通信

    问题描述:

    集群间无法通信,各个节点只能看到自己的节点信息。

    解决方案:

    1)网络不允许 UDP 组播

    如果网络不允许组波,而通信协议选择的是 UDP,需要改用 TCP。

    2)防火墙未开放集群通信端口

    • 对于 TCP,节点之间需要互相开放 7800, 7810, 7820, 7830, 7840, 7850, 7860, 7870 这八个端口;

    • 对于 UDP,需要随机开放 45588~65536 端口中的一个,满足 UDP 访问。

    • IP 互相 ping 不通(网段和 IP 选择不当)

    容器化部署web集群的时候使用的是bridge模式默认,导致不是同一台宿主机上面的节点不能 ping 通。

    解决方案容器启动镜像的时候采用--net=host采用host模式

    4)启动报错java.net.UnknownHostException: XXXX: XXXX: 未知的名称或服务

    每个节点执行一下,以把 hostname 加到 /etc/hosts 的 127.0.0.1 记录中

    sudo sed -i -e '/127.0.0.1/ s/\(localhost\)/'$(hostname)' \1/' /etc/hosts

    5)ip 显示的不对,需要手动选择服务器实际的ip。

    节点启动后互相 telnet 78xx 端口正常

    问题描述:

    节点启动后互相 telnet 78xx 端口正常,各个节点只能看到自己的节点信息。

    解决方案:

    这种情况一般是两个节点的集群 id 不一致导致,检查两个节点WEB-INF/config/db.properties文件的 hibernate.connection.url 值是否一致(字面意思,要一模一样,不要使用 localhost),如果不一致表示属于不同集群,所以会出现节点看不到对方节点,对于使用 oracle 数据库的,还需要检查 hibernate.default_schema 是否一致。

    节点 id 冲突

    问题描述:

    节点 id 冲突,各个节点只能看到同一个节点的信息(2019.06以前版本)。

    排查步骤:

    1)到每个节点的集群配置/节点管理查看id是否冲突。

    2)排查下面的原因:

    1573801918832848.png

    • docker部署

    (同镜像同启动顺序时,docker 指定的 mac 地址是一样的),或者使用了桥接模式,没有第三方网络工具的情况下应使用 host 模式,让宿主机和容器共享 ip 和端口。

    • 亚马逊服务器 EC2

    (或者类似的虚拟服务器)上部署(和上面类似,没有独立的 mac 地址?)。

    • cluster.properties

    手动在各机器 cluster.properties 指定了一样的节点 id。

    --- 其他 ---

    文件解析失败

    问题描述:

    在集群迁移前后环境的 JAR 包版本一致的前提下,集群迁移时,导入附件 resource.zip 出错,报错如下图所示:

    原因分析:

    配置 Nginx 的集群环境,Nginx 默认限制只能上传小于 1M 的文件,当资源迁移的resource.zip过大时会上传失败。

    注:单机无上传限制

    解决方案:

    打开/nginx/nginx.conf,修改 Nginx 的配置文件,增大 Nginx 上传文件大小限制。如下图所示:

    图中的 8M 可自行根据需求修改大小,代码如下所示:

    client_max_body_size 8M;
    client_body_buffer_size 128k;

    修改完成后,重新加载配置文件,即可重新成功上传。


    附件列表


    主题: 部署集成
    • 有帮助
    • 没帮助
    • 只是浏览
    中文(简体)

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持