美文网首页
分布式一致性——TCC服务设计与实现

分布式一致性——TCC服务设计与实现

作者: 雁阵惊寒_zhn | 来源:发表于2020-10-12 12:11 被阅读0次

    什么是TCC

    TCC是一种分布式事务解决方案,用于解决数据一致性问题。TCC包括Try、Confirm、Cancel三部分。

    1. Try尝试操作是第一阶段,进行资源的检查和预留。
    2. Confirm确认操作是第二阶段,执行提交操作。
    3. Cancel取消操作,并且取消预留的资源。

    TCC的设计与实现

    TCC分布式服务算法简单,设计和实现中需要考虑实际的场景,做出适当改进和对可能出现的错误进行考量。与2PC和3PC类似,可先参考分布式一致性——2PC和3PC

    1. 事务操作划分为两阶段执行
      在提交事务之前,需要先执行第一阶段Try,尝试对申请的资源进行检查和预留。之后第二阶段提交执行事务。这两阶段与2PC类似,同样要考虑到2PC协议可能产生的问题。
    2. 操作信息乱序
      Try操作因为网络问题丢失,或者在延迟,最终Confirm操作或Cancel操作提前到达。这时执行事务的TCC服务应该支持拒绝操作,并且之后如果到来迟到的Try操作也应该一起拒绝。另外,因为网络原因,Confirm操作或Cancel操作未到达,Try操作应该设置超时时间,适当的时候释放资源。
    3. 考虑事务操作的幂等性
      在分布式系统中网络可能出现不稳定,尤其使用中间件作为媒介,要考虑Try、Confirm、Cancel操作可能会被重复发送,实现幂等性系统是一种解决方式。
    4. 可能的并发控制
      在预留资源之后,可能会有其他事务需要访问预留的资源,这时的资源状态处于中间的未知状态。要考虑并发控制,保证给其他事务展示到正确的数据状态。并且在多事务同时访问相同资源时,也要考虑分布式锁的问题,尝试减小锁的粒度可以提高系统执行效率。

    相关文章

      网友评论

          本文标题:分布式一致性——TCC服务设计与实现

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