接口远程调用超时问题

博客讲述了在单机事务中遇到的远程调用超时及死锁问题。经过排查,发现是由于Feign超时和单节点事务导致的问题。尝试增加负载并未解决问题,最终确定为MySQL的行锁冲突。解决方案是采用分布式事务Seata替换单点事务,成功解决了死锁问题。
摘要由CSDN通过智能技术生成

接口远程调用超时问题

(单机事务调用单机事物的远程接口,会死锁,并且阿里云监控不到。)
排查步骤:

1.debug调试,获取远程接口调用的入参。使用入参去调用远程接口。结论:无法复现bug

2 .查看线上日志,异常信息是feign超时。推测是feign单节点不支持容错,节点心跳监测没通过,直接被踢掉,没有其他可用服务器,就一直等待。解决办法:增加负载,启用多节点。(问题没有解决)

3.debug直连线上,关闭其他服务器。直接抓取线上执行过程,断点一步一步执行。结论:无法复现bug

4.增加错误日志内容,恢复线上服务。kbn抓去线上日志信息。发现mysql有lock。推测事务死锁。检查代码发现:远程调用方与被调用方都有单节点事务,并且都操作mysql想同行。行锁冲突造成死群。解决方案,采用分布式事务seata代替单点事务。问题解决

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值