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
使用Rust与ClickHouse构建高效可靠的日志系统第三届中国Rust开发者大会 使用Rust与ClickHouse构建高 效可靠的日志系统 刘炜 腾讯云(专有云) • 自我介绍 • 系统介绍 • 整体架构 • 系统实现 • 遇到问题 大纲 自我介绍 • 大龄码农 • 做过嵌入式/CDN/数据库开发 • 从C/C++到Rust • 现在在腾讯云(专有云)从事日志系统的开发 自我介绍 PhoTto / image / chart 系统介绍 系统介绍 • 属于腾讯专有云PaaS平台(TCS) • 承接TCS底座日志 • 从Loki=>Menicus • 提供日志的搜索/报警/处理等功能 系统介绍 • 为什么放弃 Loki • 资源占用过大 • 统计/计算能力比较弱 • 组件过多,排查问题比较困难 • 商业使用不友好的开源协议 • 为什么选择Mencius+ClickHouse • 存储计算与业务分离 • 每天 100G • 磁盘 • 压缩比 1:13 • 内存 • Mencius • 200M左右 • ClickHouse • 2G以下 • 接入端 • API Gateway • 日志服务(Mencius) • 存储(ClickHouse) 整体架构 • 协议层 • 处理层 • 计算层 • 存储层 系统实现 协议层 • 支持协议 • Loki • 写入 • Json/ProtoBuf0 码力 | 19 页 | 2.66 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
ThinkJS 3.0 中文文档[project_name] 来创建项目,如: $ thinkjs new demo; $ cd demo; $ npm install; $ npm start; 执行完成后,控制台下会看到类似下面的日志: [2017-06-25 15:21:35.408] [INFO] - Server running at http://127.0.0.1:8360 [2017-06-25 15:21:35.412] 错误事件,并进行处 理。可以在配置 src/config.js 自定义这二个错误的处理函数。 等待 think.beforeStartServer 注册的启动前处理函数执行,这里可以注册一些服务启动 前的事务处理。 如果自定义了创建服务配置 createServer ,那么执行这个函数 createServer(port, host, callback) 来创建服务。 如果没有自定义,则通过 think appReady 事件,其他地方可以通过 think.app.on("appReady") 监 听。 创建的服务赋值给 think.app.server 对象。 服务启动后,会打印下面的日志: [2017-07-02 13:36:40.646] [INFO] - Server running at http://127.0.0.1:8360 [2017-07-02 13:36:40.649]0 码力 | 129 页 | 2.12 MB | 1 年前3
2022年美团技术年货 合辑体积优化的探索与实践 568 从 0 到 1:美团端侧 CDN 容灾解决方案 589 美团高性能终端实时日志系统建设实践 608 后端 622 可视化全链路日志追踪 622 设计模式二三事 647 基于代价的慢查询优化建议 670 Java 系列 | 远程热部署在美团的落地实践 692 日志导致线程 Block 的这些坑,你不得不防 713 基于 AI 算法的数据库异常监测系统的设计与实现 算法的数据库异常监测系统的设计与实现 775 目录 < v Replication(上):常见复制模型 & 分布式系统挑战 792 Replication(下):事务,一致性与共识 818 TensorFlow 在美团外卖推荐场景的 GPU 训练优化实践 855 CompletableFuture 原理与实践 - 外卖商家端 API 的异步化 879 工程效能 CI/CD 之流水线引擎的建设实践 912 数据集管理:从业务数据构造图是模型开发的第一步,图学习平台提供基于 Spark 的构图功能,可以将 Hive 中存储的业务数据转化为 Tulong 自定义的 图数据格式。业务数据经常以事件日志的方式存储,如何从中抽象出图,有大 量的选择。例如,在推荐场景中,业务日志包含用户对商家的点击和下单记 录,除了把”用户 - 点击 - 商家”的事件刻画为图以外,还可以考虑刻画短时 80 > 2022年美团技术年货 间内共同点击0 码力 | 1356 页 | 45.90 MB | 1 年前3
百度超级链 XuperChain stable 中文文档3. 创建群组 7. 使用事件订阅功能 7.1. 事件订阅的接口 7.2. 使用事件订阅 8. 只读跨链场景使用文档 8.1. B网络搭建 8.2. A网络搭建 8.3. 跨链查询 9. 非事务场景跨链使用文档 9.1. 中继同步合约 9.2. 合约使用方法 9.3. 中继同步进程 10. 搭建XPoA共识的 XuperChain 网络 10.1. 搭建XPoA共识网络 10.2. 验证集合合约部署和调用 此节点的地址,具有全局唯一性 │ ··· ├─ netkeys 此节点的网络标识ID,具有全局唯一性 │ ··· └─ config 包括创始的共识,初始的资源数,矿工奖励机制等 ├─ logs 程序日志目录 ├─ plugins so扩展的存放目录 ├─ xchain xchain服务的二进制文件 目录名 功能 ├─ xchain-cli xchain客户端工具 └─ wasm2c wasm工具(智能合约会用到) 早期交易的输出,以证明资金来源。同样,在XuperModel中,每个事务读取的 数据需要引用上一个事务写入的数据。在XuperModel中,事务的输入表示在执 行智能合约期间读取的数据源,即事务的输出来源。事务的输出表示事务写入 状态数据库的数据,这些数据在未来事务执行智能合约时将被引用,如下图所 示: XuperModel事务 为了在运行时获取合约的读写集,在预执行每个合约时XuperModel为其提供智0 码力 | 325 页 | 26.31 MB | 1 年前3
CmlPHP v2.x 开发手册
update) 1.6.6.9 10. 简 单 的 单 字 段 自 减 ( 多 字 段 参 考 update) 1.6.6.10 11. 聚合操作 1.6.6.11 12. 事务 1.6.6.12 13. 调用存储过程 1.6.6.13 14. 原生/子查询/union 1.6.6.14 15. 快捷方法 1.6.6.15 1. 通 9.2 3. Blade模板引擎 1.6.9.3 10. 锁-并发处理 1.6.10 11. 缓存 1.6.11 12. 语言包 1.6.12 13. 日志 1.6.13 14. 调试 1.6.14 15. Session自定义保存位置 1.6.15 16. 框架自带的扩展包 1.6.16 17. 插件 1.6 1.8.4 9. 常见问题 1.9 1. 模板中不同的url_model模式下传参给后端 ? &符混乱 1.9.1 10. 服务高可用 1.10 11. 升级日志 1.11 CmlPHP v2.x开发手册 本教程是针对CmlPHP开发框架的V2.x系列版本的开发使用教程。 本教程离线版下载:pdf、mobi、epub CmlPHP主页:cmlphp0 码力 | 251 页 | 973.37 KB | 1 年前3
美团点评2018技术年货美团点评智能支付核心交易系统的可用性实践 176 ...................................................................... 卫星系统——酒店后端全链路日志收集工具介绍 192 ...................................................................... 深入浅出排序学习:写给程序员的算法系统开发实践 Log4j2 狂打日志导致 Netty 的 NIO 线程阻塞(由于没有及时保留现场,所以截图缺失)。NIO 线程阻塞之后,因我们的服务 Netty堆外内存泄露排查盛宴 - 美团技术团队 器无法处理客户端的请求,所以对Nginx来说就是5xx。 接下来,我们查看了 Log4j2 的配置文件。 我们发现打印到控制台的这个 appender 忘记注释掉了,所以初步猜测:因为这个项目打印的日志过多, 而 没我们最初想象的那么简单。 阶段2:可疑日志浮现 阶段2:可疑日志浮现 接下来,我们只能硬着头皮去查日志,特别是故障发生点前后的日志,于是又发现了一处可疑的地方: 可以看到:在极短的时间内,狂打 failed to allocate 64(bytes) of direct memory(...) 日志 (瞬间十几个日志文件,每个日志文件几百M),日志里抛出一个 Netty 自己封装的 Ou0 码力 | 229 页 | 61.61 MB | 1 年前3
共 282 条
- 1
- 2
- 3
- 4
- 5
- 6
- 29













