• java后端问题排查思路


    问题排查思路

    这里说的是主要是debug的思路,没有涉及到性能调优(cpu,磁盘,io,内存等)。

    解决问题的步骤

    确认环境、确定问题、复现问题、查看日志、定位问题 、解决问题

    确认环境

    • 确认是哪个环境。

    是开发环境,测试环境,还是生产环境。

    如果采用了微服务架构,还要查看注册中心,服务是否生效,启用了哪一个实例。

    • 哪个接口?哪些参数?哪个时间段?

    确认url是否正确,参数有没有传错了。

    确定问题

    有时候测试/用户提出的问题,不一定是bug。

    一定要跟需求做校对,确认是否与需求一致,是否因需求不合理导致的。

    复现问题

    问清楚测试/用户,问题是如何出现的,具体的操作步骤是什么,查看是否因为操作步骤不正确导致的。

    在相同的环境,自己重新操作一遍,复现问题。

    如果无法复现,问清楚出错的操作时间,直接查看日志。

    查看日志

    生产环境中,是没法进行debug的,所以日志非常重要。
    开发中,一定要把重要的变量打印出来。

    • 异常错误
      如果是异常错误,直接查看error日志中在堆栈信息,找到出错在代码就可以了。

    • 逻辑错误
      查看info日志中的信息。
      如果关键的信息没有打印日志,那么补充日志后,重新发布到开发/测试环境中。
      在解决问题时,补充日志,重新发布环境,是非常有效的方法

    查询数据源

    将查询或更新的sql或es等语句找出来,在对应的数据源中查询进行定位。

    定位问题

    数据的流程一般是: 数据源产生数据--->加工数据--->目标变量获取数据

    如果数据有问题,那么就要从这三方面分析,是在哪一步出错了。

    是数据源的数据本来就不对,或者数据在加工过程中出错了,还是目标变量取错了数据,数据出错 ?

    IDEA查看变量的调用链,可以参考以下文章:
    https://www.cnblogs.com/expiator/p/10856482.html

    解决问题

    修改代码后,重新发布环境,查看问题是否已经解决。

    结语

    实际中遇到的问题,可能会更加复杂,还是需要多思考,多分析,多解决实际问题。

    无他,唯手熟尔。

  • 相关阅读:
    (转载) MTK芯片不开机必杀全攻略
    <19> MTK10A 修改模拟时钟表盘、表针的显示模式
    (转载) MTK flash
    (转载) MTK申请内存
    (转载) 标准C中的字符串操作函数
    pcb布线时线宽与耐流的关系
    (转载) vb6的数据类型
    (转载) MTK驱动开放基础知识
    (转载) MTK常用函数及宏定义
    xx了Windows正版验证
  • 原文地址:https://www.cnblogs.com/expiator/p/14584664.html
Copyright © 2020-2023  润新知