定位问题的步骤:
1. 确认刚才是否有过代码变更和部署,因为有比较高的概率是刚才变更的代码又搞坏了…… 2. 追踪链路日志看链路是否有异常; 3. 通过RPC的控制台调用看接口输入输出是否符合预期; 4. 追踪关键方法的入参和出参,看是否有问题; 5. 定位到方法细节后,推理逻辑是否有问题; 6. 如果无法通过推理,那就最后一招,回放异常流量debug,这样肯定能够找到原因。
某个链路耗时比较长,需要进行性能优化,分析步骤是:1. 通过实际流量制造一个耗时较高的trace; 2. 进行trace分析,看清楚耗时最多的原因,然后按优先级进行排序; 3. 针对对原因找解决方案,可能的方案有: i. 减少数据访问次数或者计算量,常见手段是增加cache:线程内的invokeCache;分布式缓存tair;页面缓存…… ii. 增强处理速度,比如多线程加速; iii. 减少循环调用次数,比如请求合并后再分发; iv. 减少数据处理范围,比如减少查询内容,异步加载分页; v. 逻辑简化,比如逻辑进行优化,或者非核心逻辑异步化等; vi. …… 4. 改掉以后,回放同样的case,看性能消耗是否满足预期,不满足预期继续优化;
如何熟悉一个新系统,步骤是:1. 要一个测试账号,把相关功能走一遍