公司在2016年11月份自行设计了第一款基于mq消息队列的分布式事务框架。 ... v2.3设计原理 -合并增加和修改事务组,简化分布式启动模块业务处理,优化模块二次 ... DB数据库. 业务系统. LCN代理连接池. 数据库连接池. LCN源码分析. 源码地址:.

Vivek发布于2018/06/04 00:00

注脚

1.了解 LCN 分布式事务框架 Lorne

2.什么是 LCN LCN 与 其他分布式事务的 区别 LCN 分布式事务的架构 设计 LCN 源码分析

3.LCN 介绍 前言: 公司在 2016 年 11 月份 自行设计 了第一款 基于 mq 消息队列 的分布式 事务框架 。 当时 公司底层的 技术 框架是 springmvc+spring+springjdbc 。 年后 公司 框架开始 转变 成 了 springcloud 框架, 因此开启了分布式事务的探索之路 。 LCN v 1.0 的 框架 思想依旧 采用 了 之前 的 mq 分布式事务 设计 思想 , 框架分为三阶段: lock (锁定)、 confirm (确认)、 notify (通知)。因此 LCN 的名称是这样得来的。 v1.0 设计原理 - LCN 的第一个版本 v2.0 设计原理   - 替换了通讯框架 v2.1 设计原理   - 简化了操作步骤 v2.2 设计原理   - 增加了事务补偿 v2.3 设计原理   - 合并增加和修改事务组,简化分布式启动模块业务处理,优化模块二次调用 v3.0 设计原理   - 将事务控制权转移给代理连接 池 LCN 官网地址: http://www.txlcn.org LCN 的 GitHub 地址: https:// github.com/1991wangliang/tx-lcn

4.LCN 与 其他分布式 事务的区别 目前 可以做到 的 分布式事务 数据库 框架 类型 有 : 2PC 、 3PC 、 TCC 、 Paxos 算法 、分布式数据库 。 2PC 、 3PC 其实 可以理解 为一类,而且 2PC 有隐患 因此才诞生了 3PC 。但是 3PC 也存在隐患。 TCC 机制 ,也存在幂等性 操作问题 ,开发 使用复杂 。 LCN 机制 是 原理是取长补短,即 采用 了 3PC 的 原理, 有 结合 TCC 的补偿 机制。 Paxos 算法 / 分布式 数据库: Paxos 算法促生了一些分布式数据库 , 但是 目前 比较成熟的还比较少 , 对现有的数据库兼容性不好, 可 参考 alisql 数据库 。 http :// www.hollischuang.com/archives/681 2pc 、 3pc 原理 http:// www.cnblogs.com/rainwang/p/7099648.html tcc 机制 http:// www.cnblogs.com/cchust/p/5617989.html paxos 算法 https:// github.com/1991wangliang/tx-lcn/blob/master/tx-manager/README3.0.md lcn 原理 http:// www.oschina.net/p/alisql alisql 数据库 http:// developer.51cto.com/art/201708/547380.htm 阿里的 X- Paxos 的应用实践

5.LCN 分布式事务的架构 设计 事务协调器( TxManager )、事务发起者、事务参与方 劫持连接池计划 https ://github.com/1991wangliang/tx-lcn/blob/master/tx-manager/README3.0.md 事务操作步骤说明 https ://github.com/1991wangliang/tx-lcn/blob/master/tx-manager/README2.3.md 事务协调器 事务发起方 事务参与方

6.事务组解释 事务组是由同一次事务下的各个事务单元组成的 事务 组合,叫做事务组 。 若:存在模块 A 、 B 。 A 模块下存在 a(),b() ; B 模块下存在 c(),d(); 方法的调用关系是: a()->b()->c()->d() ; http:// blog.csdn.net/flqljh/article/details/49834011 事务的 7 个传播行为 B{ c() d () } A{ a() b() }

7.LCN 原理介绍 A{ a1(){ B.b1(); a2(); } a2 (){ int i = 100/0; } } TM A. a1() A. a2 () B. b1() B. b2() B { b1(){ b2(); } b2(){ } } 调用关系: A 的 a1() 方法是启动方法。 执行顺序是 : A.a1()-> B.b1()->B.b2()-> A.a2()

8.LCN 劫持连接池计划 TxManager DB 数据库 业务系统 LCN 代理连接池 数据库连接池

9.LCN 源码分析 源码地址: https :// github.com/1991wangliang/tx-lcn Dubbo 的 demo 地址: https :// github.com/1991wangliang/dubbo-lcn-demo SpringCloud 的 demo 地址: https :// github.com/1991wangliang/springcloud-lcn-demo

10.感谢 观看

user picture
  • Vivek
  • A qualified chemist who somehow drifted into web development.

相关Slides

  • 大规模实践基于Docker的MySQL私有云平台。集成高可用、快速部署、自动化备份、性能监控、故障分析、过载保护、扩容缩容等多项自动化运维功能。数据库高可用是不容忽视的,在Docker容器分配时如何保障主从不在同一宿主机上呢?我们通过自研Docker容器调度平台,自定义Docker容器的分配算法。实现了MySQL的高密度、隔离化、高可用化部署。同时结合我们自研的数据库中间件,支持了分片集群及无感知的高可用切换功能。截止目前平台支撑了目前总量90%以上的MySQL服务(实际数量超过2000个),资源利用率提升30倍,数据库交付能力提升70倍。并且经受住了十一黄金周、春节票务业务高峰期的考验。未来将致力于数据库自动化向智能化的推进。

  • 在云时代的今天,企业数据库面临着复杂的选择,数据库异构迁移往往达不到预期效果,樊文凯想大家分享了ADAM数据库和应⽤用迁移(Advanced Database & ApplicationMigration, 以下简称ADAM),ADAM是阿里云结合阿里巴巴多年年内部业务系统数据库和应⽤用异构迁移的经验(去IOE),⾃自主研发的、迁移ORACLE数据库和应⽤用⾄至阿⾥里里云相关云产品的专业产品,分享了ADAMA的结构、高性能、数据库割接、智能分析、所用的生态工具等,典型的数据库中出现的痛点。

  • 主要介绍阿里云MongoDB服务使用上的一些最佳实践,以及对MongoDB的部署、参数调优

  • Lindorm 是新一代面向在线海量数据处理的分布式数据库,阿里的技术专家通过分享这些多种场景下的数据存储技术实践,帮助企业更好地理解各种数据存储技术的特点,针对自己的业务发展对数据存储技术进行选择和组合。