y_yhzj 2024-12-13 10:19 采纳率: 0%
浏览 69
已结题

微服务假死,一段时间后自动恢复,如何排查处理

注册中心采用nacos,微服务实例有一个,运行一段时间后,其中一个服务出现假死情况(jvm的dump文件显示正常),nacos显示正常,假死服务所在服务器的内存,cpu显示正常,数据库正常,其他服务无法调用假死服务所有的接口,报链接超时,该假死服务运行一段时间后自动恢复,请问如何排查或处理?
假死服务后台日志报过如下错误:

img

  • 写回答

34条回答 默认 最新

  • 阿里嘎多学长 2024-12-13 10:34
    关注
    获得0.15元问题酬金

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    微服务假死,一段时间后自动恢复,如何排查处理

    你遇到的问题是微服务假死,注册中心使用 Nacos,服务实例只有一个,运行一段时间后出现假死情况,但 JVM 的 dump 文件显示正常,Nacos 显示正常,服务器的内存、CPU 和数据库都正常。

    排查处理的步骤如下:

    1. 检查服务的日志:查看服务的日志,是否有任何错误或警告信息,可以帮助你找到问题的根源。
    2. 检查服务的网络连接:检查服务之间的网络连接是否正常,是否有任何网络问题导致服务假死。
    3. 检查服务的依赖关系:检查服务之间的依赖关系,是否有任何依赖关系导致服务假死。
    4. 检查服务的配置文件:检查服务的配置文件,是否有任何配置错误或不一致导致服务假死。
    5. 使用工具检查服务:使用工具,如 Java Mission Control、VisualVM 等,检查服务的运行状态,是否有任何问题。
    6. 重启服务:重启服务,观察是否可以恢复正常运行。
    7. 检查 Nacos 配置:检查 Nacos 的配置,是否有任何配置错误或不一致导致服务假死。

    代码部分:

    // 使用 Java Mission Control 检查服务
    MissionControl mc = new MissionControl();
    mc.connect("localhost", 9999);
    mc.getThreadDump();
    
    // 使用 VisualVM 检查服务
    VisualVM vm = new VisualVM();
    vm.connect("localhost", 9999);
    vm.getThreadDump();
    

    备注

    • 请注意,假死可能是由于服务的 bug、配置错误、网络问题等原因导致的,因此需要根据实际情况进行排查和处理。
    • 如果问题仍然无法解决,可以考虑使用日志分析工具、性能监控工具等来帮助排查问题。
    评论

报告相同问题?

问题事件

  • 系统已结题 12月21日
  • 赞助了问题酬金15元 12月13日
  • 修改了问题 12月13日
  • 创建了问题 12月13日

悬赏问题

  • ¥15 宇视监控服务器无法登录
  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥15 DruidDataSource一直closing
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据