4.3k 4 分钟

# SAGA 模式 SAGA 事务模式是 DTM 中最常用的模式,主要是因为 SAGA 模式简单易用,工作量少,并且能够解决绝大部分业务的需求。 dtm 的 SAGA 模式与 Seata 的 SAGA 在设计理念上是不一样的,整体使用难度大幅度降低,非常容易上手 SAGA 最初出现在 1987 年 Hector Garcaa-Molrna & Kenneth Salem 发表的论文 SAGAS 里。其核心思想是将长事务拆分为多个短事务,由 Saga 事务协调器协调,如果每个短事务都成功提交完成,那么全局事务就正常完成,如果某个步骤失败,则根据相反顺序一次调用补偿操作。 #...
1.9k 2 分钟

# DTM 架构图 整个 DTM 架构中,一共有三个角色,分别承担了不同的功能 RM - 资源管理器:RM 是一个应用服务,负责管理全局事务中的本地事务,他通常会连接到一个数据库,负责相关数据的修改、提交、回滚、补偿等操作。例如在前面的这个 SAGA 事务中,步骤 2、3 中被调用的 TransIn,TransOut 服务都是 RM,业务上负责 A、B 账户余额的修改 AP - 应用程序:AP 是一个应用服务,负责全局事务的编排,他会注册全局事务,注册子事务,调用 RM 接口。例如在前面的这个 SAGA 事务中,发起步骤 1 的是 AP,它编排了一个包含 TransOut、TransIn...
628 1 分钟

# iota iota 是 go 语言的常量计数器,只能在常量的表达式中使用。 iota 在 const 关键字出现时将被重置为 0 。 const 中每新增一行常量声明将使 iota 计数一次 ( iota 可理解为 const 语句块中的行索引)。 使用 iota 能简化定义,在定义枚举时很有用。 举个例子: const ( n1 = iota //0 n2 //1 n3 //2 n4 //3 )# 1.2.2. 几个常见的 iota 示例: 使用_跳过某些值 const ( n1 = iota //0 n2 //1 _ n4 //3 )iota 声明中间插队 const ( n1 =...
2.6k 2 分钟

## '#'开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ## ## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释 ## ## 文件保存相关 ## # 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置 dir=/Users/ppyylee/Downloads # 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M #disk-cache=32M # 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc # 预分配所需时间: none < falloc ? trunc <...