4 seata-golang 分布式事务框架
微信号: scottlewis 分布式事务框架 Seata-Golang 刘晓敏 H3C ⽬ 录 Demo 演示 01 Seata 原理 02 Mysql driver 原理 03 Mysql driver 接⼊ 04 TODO & QA 05 分布式事务就是指事务的参与者、⽀持事务的服务器、资源服务器以及事务管理器分别位于不同的分布式系 统的不同节点之上。简单的说,就是 统的不同节点之上。简单的说,就是⼀次⼤的操作由不同的⼩操作组成,这些⼩的操作分布在不同的服务器 上,且属于不同的应⽤,分布式事务需要保证这些⼩操作要么全部成功,要么全部失败。本质上来说,分布 式事务就是为了保证不同数据库的数据⼀致性。 什么是分布式事务问题? Demo 演示 整体机制: • ⼀阶段:业务数据和回滚⽇志记录在同⼀个本地事务中提交,释放本地锁和连接资源。 • ⼆阶段: • 提交异步化,⾮常快速地完成。 • tc 交互,报 告分⽀事务的执⾏状态。如果执⾏ Commit,connCtx 有值则把 sqlUndoItemsBuffer 中的 undoLog 和业务 数据⼀起提交到数据库,然后报告 tc 事务分⽀提交的状态(成功还是失败),否则执⾏正常的提交。如果 执⾏ Rollback,connCtx 有值则回滚然后向 tc 报告分⽀执⾏失败,tc 会根据这个状态回滚整个全局事务, connCtx 没有值则只需正常回滚。0 码力 | 14 页 | 3.23 MB | 1 年前3华为云分布式事务DTM最佳实践
servicecomb.apache.org github.com/apache?q=servicecomb 华为云分布式事务DTM最佳实践. 王启军 2 github.com/apache?q=servicecomb servicecomb.apache.org 王启军,华为云PaaS团队架构师,负责微服 务框架的开发。曾任当当网架构师,主导电商平台 架构设计;曾就职于搜狐负责手机微博的研发。 Strong 业界常用的一致性分类 5 github.com/apache?q=servicecomb servicecomb.apache.org 方案\指标 2PC 传统事务 可靠事件 TCC 柔性事务 SAGA 补偿事务 数据一致性 强一致 最终一致 最终一致 最终一致 总体性能 低 高 取决于实现 取决于实现 业务侵入性 较低侵入 高侵入 高侵入 高侵入 适用广泛性 一般 一般 高 高 低 产品成熟度 高 高 一般 低 方案对比 6 github.com/apache?q=servicecomb servicecomb.apache.org 分布式事务管理中间件 (Distributed Transaction Management,DTM) 7 github.com/apache?q=servicecomb servicecomb.apache.org DTM总体架构(TCC)0 码力 | 15 页 | 3.10 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • BASE • 基本可⽤用(Basically Available) • 柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T10 码力 | 39 页 | 2.78 MB | 1 年前3《Saga分布式事务解决⽅案与实践》演讲者/姜宁
《Saga分布式事务解决⽅方案与实践》 演讲者/姜宁 关于我 • 华为开源能⼒力力中⼼心 • ServiceComb项⽬目负责⼈人 • Apache Member , IPMC, 多个Apache项⽬目 • RedHat, IONA, Travelsky 议题 • 微服务事务⼀一致性问题? • 业界Saga的解决⽅方案 • ServiceComb Saga的演进 • BASE • 基本可⽤用(Basically Available) • 柔性状态 (Soft state) • 最终⼀一致性 (Eventually Consistent) (刚性事务) (柔性事务) https://queue.acm.org/detail.cfm?id=1394128 TCC • Try: 尝试执⾏行行业务 • 完成所有业务检查,预留留必须的业务资源 • • 微服务内:聚合通过数据库事务保证强⼀一致 • 内刚 • 微服务间:最终⼀一致 • 外柔 微服务事务⼀一致性建议 • 1987年年Hector & Kenneth 发表论⽂文 Sagas • Saga = Long Live Transaction (LLT) • LLT = T1 + T2 + T3 + ... + Tn • 每个本地事务Tx 有对应的补偿 Cx T10 码力 | 33 页 | 2.38 MB | 1 年前3使用Go与redis构建有趣的应用
合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) 特点 • 具有多种不不同的数据结构可⽤用,其中包括:字符串串、散列列、列列表、集合、有序集合、位图 、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) • 强⼤大的多机功能⽀支持:主从复制(单主多从)、Sentinel(⾼高可⽤用)、集群(基于 Raft 算法,多 合、有序集合、位图 (bitmap)、HyperLogLog、地理理坐标(GEO) • 内存存储和基于多路路复⽤用的事件响应系统,确保了了命令请求的执⾏行行速度和效率 • 丰富的附加功能:事务、Lua 脚本、键过期机制、键淘汰机制、多种持久化⽅方式(AOF、RDB、 RDB+AOF 混合) • 强⼤大的多机功能⽀支持:主从复制(单主多从)、Sentinel(⾼高可⽤用)、集群(基于0 码力 | 176 页 | 2.34 MB | 1 年前3百度超级链 XuperChain 3.12-a中文文档
网络管理 网络管理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 链上监管 监控链运行状态 平行链与跨链 跨链基本概念 只读事务场景跨链 非事务场景跨链 平行链与群组 链上治理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 搭建多节点网络 在阅读本节前,请先阅读“快 约的机制,通过该机制,超级链具备了对链上用户的实名、交易的安全检查 等监管能力。 超级链在初始化时候,可以通过创世块配置的方式,配置这条链是否需要支 持监管类型。对于配置了监管合约的链,这个链上所有的事务发起,无论是 转账还是合约调用,系统会默认插入监管合约的执行,执行结果体现在读写 集中,执行过程不消耗用户资源,执行结果所有节点可验证。 目前超级链支持的监管合约主要有以下几个: 实名制合约: identity tx_del_my.sign tx_del_compliance_sign.out --host localhost:37101 --tx tx_del.out 3. 实名信息验证 当用户向网络发起事务请求时,网络会验证交易中的 initiator 和 auth_require 字段是否都经过实名,如果都经过实名,则通过,否则,失 败。 监控链运行状态 超级链系统集成了 Prometheus0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain 3.12-c 中文文档
网络管理 网络管理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 链上监管 监控链运行状态 平行链与跨链 跨链基本概念 只读事务场景跨链 非事务场景跨链 平行链与群组 链上治理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 搭建多节点网络 在阅读本节前,请先阅读“快 约的机制,通过该机制,超级链具备了对链上用户的实名、交易的安全检查 等监管能力。 超级链在初始化时候,可以通过创世块配置的方式,配置这条链是否需要支 持监管类型。对于配置了监管合约的链,这个链上所有的事务发起,无论是 转账还是合约调用,系统会默认插入监管合约的执行,执行结果体现在读写 集中,执行过程不消耗用户资源,执行结果所有节点可验证。 目前超级链支持的监管合约主要有以下几个: 实名制合约: identity tx_del_my.sign tx_del_compliance_sign.out --host localhost:37101 --tx tx_del.out 3. 实名信息验证 当用户向网络发起事务请求时,网络会验证交易中的 initiator 和 auth_require 字段是否都经过实名,如果都经过实名,则通过,否则,失 败。 监控链运行状态 超级链系统集成了 Prometheus0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain 3.12 中文文档
网络管理 网络管理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 链上监管 监控链运行状态 平行链与跨链 跨链基本概念 只读事务场景跨链 非事务场景跨链 平行链与群组 链上治理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 搭建多节点网络 在阅读本节前,请先阅读“快 约的机制,通过该机制,超级链具备了对链上用户的实名、交易的安全检查 等监管能力。 超级链在初始化时候,可以通过创世块配置的方式,配置这条链是否需要支 持监管类型。对于配置了监管合约的链,这个链上所有的事务发起,无论是 转账还是合约调用,系统会默认插入监管合约的执行,执行结果体现在读写 集中,执行过程不消耗用户资源,执行结果所有节点可验证。 目前超级链支持的监管合约主要有以下几个: 实名制合约: identity tx_del_my.sign tx_del_compliance_sign.out --host localhost:37101 --tx tx_del.out 3. 实名信息验证 当用户向网络发起事务请求时,网络会验证交易中的 initiator 和 auth_require 字段是否都经过实名,如果都经过实名,则通过,否则,失 败。 监控链运行状态 超级链系统集成了 Prometheus0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain 3.12-b 中文文档
网络管理 网络管理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 链上监管 监控链运行状态 平行链与跨链 跨链基本概念 只读事务场景跨链 非事务场景跨链 平行链与群组 链上治理 搭建 XuperChain 网络 搭建多节点网络 搭建XPoA共识的超级链网络 搭建TDPoS共识网络 搭建多节点网络 在阅读本节前,请先阅读“快 约的机制,通过该机制,超级链具备了对链上用户的实名、交易的安全检查 等监管能力。 超级链在初始化时候,可以通过创世块配置的方式,配置这条链是否需要支 持监管类型。对于配置了监管合约的链,这个链上所有的事务发起,无论是 转账还是合约调用,系统会默认插入监管合约的执行,执行结果体现在读写 集中,执行过程不消耗用户资源,执行结果所有节点可验证。 目前超级链支持的监管合约主要有以下几个: 实名制合约: identity tx_del_my.sign tx_del_compliance_sign.out --host localhost:37101 --tx tx_del.out 3. 实名信息验证 当用户向网络发起事务请求时,网络会验证交易中的 initiator 和 auth_require 字段是否都经过实名,如果都经过实名,则通过,否则,失 败。 监控链运行状态 超级链系统集成了 Prometheus0 码力 | 336 页 | 12.62 MB | 1 年前3百度超级链 XuperChain 3.7 中文文档
3. 创建群组 7. 使用事件订阅功能 7.1. 事件订阅的接口 7.2. 使用事件订阅 8. 只读跨链场景使用文档 8.1. B网络搭建 8.2. A网络搭建 8.3. 跨链查询 9. 非事务场景跨链使用文档 9.1. 中继同步合约 9.2. 合约使用方法 9.3. 中继同步进程 开发应用 1. 电子存证合约 1.1. 问题引入 1.2. 数据结构的设计 1.3. 电子存证合约的功能实现 早期交易的输出,以证明资金来源。同样,在XuperModel中,每个事务读取的 数据需要引用上一个事务写入的数据。在XuperModel中,事务的输入表示在执 行智能合约期间读取的数据源,即事务的输出来源。事务的输出表示事务写入 状态数据库的数据,这些数据在未来事务执行智能合约时将被引用,如下图所 示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供智 为其提供智 能缓存。该缓存对状态数据库是只读的,它可以为合约的预执行生成读写集和 结果。验证合约时,验证节点根据事务内容初始化缓存实例。节点将再次执行 一次合约,但此时合约只能从读集读取数据。同样,写入数据也会在写入集中 生效。当验证完生成的写集和事务携带的写集一致时合约验证通过,将事务写 入账本,cache的原理如下所示,图中左边部分是合约预执行时的示意图,右 边部分是合约验证时的示意图: XuperModel合约验证0 码力 | 270 页 | 24.86 MB | 1 年前3
共 137 条
- 1
- 2
- 3
- 4
- 5
- 6
- 14