以下是个人日常解决问题的时候一些心得总结
心态:
- 找问题的过程需要耐心,一看日志一堆乱哄哄的,看着看着加上没有问题头绪,一会就会烦了,只有找到问题突破点,才能摸索着看下去
重点:
- 分清主次:找问题要找到问题关键点,才能找到突破口
- 关联和框架:心里要有整个事情的大概框架,知道去分析哪块,大概哪块会有问题,比如A调用B服务报错,分别看A和B的错误是啥报错,然后定位是A还是B的问题
- 多链路调用:微服务不是直接调用的,会有一些中间件,或者其他组件作为代理然后找到其他服务,所以要多关注是否已经和中间件建立调用关系
- 借助工具:比如日志关键字Error,debug,监控数据【监控数据异常的时间】,服务请求返回状态等
- 综合分析:然后多个维度综合分析,排查是硬件:网络timeout,磁盘IO, 内存OOM,还是服务的问题,参数的问题等
- 时间线索:任何问题都有时间线索,首先要保证各个系统和服务的时区和时间保持一致,是查询的根本
- 原理机制:查看官方doc,一定要清楚服务的原理和机制,清楚服务在调用中的位置,有能力读代码的更好
- 分解步骤:比如A请求B,单独把服务拉出来进行模拟请求,看下大概有多少步