e签阿里P8的一个面试题:现在有一个分布式系统,A调B调C,C成功了,然后因为网络延迟,C没有给响应返回给B,B报错了,这种情况ABC怎么处理?

我听到这段面试的时候觉得这可能是一个考察分布式事务的知识点,所以我回答了一下用spring cloud 引用lcn jar包在方法上加上LCN注解或者spring cloud alibaba 有一个  seata 可以解决,然后还把TCC补偿机制给说了一下,说的比较杂。但是面试官依然问我,现在ABC的情况是怎么处理。。。。我回答是全部回滚。

我后来面试结束之后想了想,B没有收到响应应该会有重试机制会再隔5面之前把的请求再发一次,如果C已经成功了,就要处理一下接口的幂等性问题,然后依然会返回成功的状态码,这次没有网络延时,应该返回成功了,如果还有就继续重试,重试5次之后还是失败就记录日志然后全部回滚,日志用于TCC或者自己手动补偿,没有延时B接收成功,就接着响应A这样就形成了一个成功的完整的闭环

不知道我后面想的这个回答对不对

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值