一次RPC服务调用异常分析

博客讲述了在分析一次RPC服务调用异常时,发现没有异常日志,通过查看jstack、排查sql和事务配置,最终确定问题由事务切面配置错误导致,事务提交不及时造成sql阻塞。同时,讨论了为何Rpc未捕获到数据库超时异常,原因是Rpc请求超时与数据库阻塞的时间关系。
摘要由CSDN通过智能技术生成
现象:RPC请求一直超时异常如下
java.lang.RuntimeException: xxxRpcTimeOutException-null

分析:查看代码,可能是某个sql或者第三方服务调用超时造成的,查找该服务业务日志,没有发现任何异常日志数据!!这下子尴尬了,

1.机器load指标正常,为了恢复线上问题,重启集群,保留一台机器分析,为了防止该机器被线上流量调用,线上环境先屏蔽该机器。

2.因为没有任何异常日志打印,看下jstack有啥有用的信息没

jps -v 
jstack 1893 |grep '${类名.方法名}'

没有找到相关信息,有可能线程可能已经结束了,尝试手动调用一次Rpc服务,重复步骤2,有调用栈信息输出

RpcBizProcessor-DEFAULT-8-thread-1" daemon prio=10 tid=0x000000000187b800 nid=0x1d86 runnable [0x000000005fccd000]
   java.lang.Thread.St
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值