zoukankan      html  css  js  c++  java
  • TX-LCN 分布式事务解决方案

    一、LCN (Lock Confirm Notify),分布式解决方案之一,主要是二阶段提交协议的落地方案

    二、源码地址 官网地址

    三、模式

      1、LCN(Lock Confirm Notify):主要针对支持事务性的数据库,一阶段锁住本地资源,二阶段提交或回滚,提交过程中失败的,通知

      2、TCC(Try Confirm Cancel):主要针对非事务性的数据库,一阶段尝试执行,二阶段提交或回滚

      3、TXC: TXC模式命名来源于淘宝,实现原理是在执行SQL之前,先查询SQL的影响数据,然后保存执行的SQL快照信息和创建锁。当需要回滚的时候就采用这些记录数据回滚数据库,目前锁实现依赖redis分布式锁控制

     四、示例代码

    五、原理:虽然源码没有看得太仔细,但大致的套路是这样的:

    • 拦截了getConnection方法,返回一个代理的connection,connection覆盖了close和rollback方法,使得提交和回滚无效
    • 拦截lcn、tcc、txc等事务注解,从第一个事务开始,依次执行并注册到分布式事务管理器中,根据所有事务的执行情况决定是提交还是回滚
    • 缺点:我自己认为的,就是要占用connection资源和锁住本地资源(比如数据库如果是微服务自身的,则其涉及资源的部分也将被锁住);优点:lcn的模式代码侵入性低(tcc还是比较麻烦的)
  • 相关阅读:
    对现有Hive的大表进行动态分区
    Hive表分区
    Hive常用的SQL命令操作
    Hadoop分布式安装
    Hadoop命令摘录
    HDFS基本知识整理
    Hive基本命令整理
    Hadoop
    淘宝数据魔方技术架构解析
    Eclipse 下 opennms 开发环境搭建
  • 原文地址:https://www.cnblogs.com/gabin/p/13776739.html
Copyright © 2011-2022 走看看