美文网首页Java
【5分钟背八股】如何解决TCC中悬挂问题?

【5分钟背八股】如何解决TCC中悬挂问题?

作者: 废柴程序员 | 来源:发表于2022-06-25 21:17 被阅读0次

    面试官:如何解决TCC中悬挂问题?

    悬挂就是对于一个分布式事务,其二阶段Cancel接口比Try接口先执行。

    出现原因是在调用分支事务Try时,由于网络发生拥堵,造成了超时,TM就会通知RM回滚该分布式事务,可能回滚完成后,Try请求才到达参与者真正执行,而一个Try方法预留的业务资源,只有该分布式事务才能使用,该分布式事务第一阶段预留的业务资源就再也没有人能够处理了,对于这种情况,我们就称为悬挂,即业务资源预留后无法继续处理。

    解决思路是如果二阶段执行完成,那一阶段就不能再继续执行。在执行一阶段事务时判断在该全局事务下,判断分支事务记录表中是否已经有二阶段事务记录,如果有则不执行Try。

    【5分钟背八股】65:如何解决TCC中悬挂问题?.png

    推荐阅读:【JAVA面试八股[最新高频]:Java基础/SSM框架/设计模式/SpringBoot/JVM/分布式/微服务/ES/多线程/redis/mysql/大厂算法!】

    相关文章

      网友评论

        本文标题:【5分钟背八股】如何解决TCC中悬挂问题?

        本文链接:https://www.haomeiwen.com/subject/ohfwvrtx.html