文|
赵新(花名:于雨 )
蚂蚁集团 Seata 项目开源负责人
本文 2953 字 阅读 10 分钟
发布概览
主要新增特性:
支持以 gRPC、HTTP 方式实现 TCC 调用;
支持 TCC 防悬挂和空回滚自动处理;
支持 TCC 模式一阶段传入用户自定义参数;
支持 AT 模式的数据源代理;
AT 模式支持并集成了 Update 语法解析(其中 Insert、Delete、Multi Delete、Multi Insert 等语法解析工作已完成但是未集成);
支持了事务异步处理功能。
上半年工作规划
Seata-go 后续主要工作如下:
集成 AT 模式 Insert、Delete、Multi Delete、Multi Insert ;
XA 模式开发;
与其他生态互联互通,构建一体化的微服务基础设施平台:
-
与 MOSN 等 Service Mesh 生态互通,达成生产可用的 Transaction Service Mesh 技术形态;
与 Dapr 社区合作,推进分布式事务标准 API 工作;
与 RocketMQ 合作,推进分布式消息事务模式工作;
与各种 Go 语言 ORM 库合作,在不修改任何业务代码的情况下,以零成本实现 单体服务/微服务 平台的分布式事务;
与 Dubbogo 社区的 Dubbo-go/Dubbo-go-pixiu 等产品合作,保证微服务间的一致性。
版本主要更新
Feature
[#190] 添加分支状态上报接口
https://github.com/seata/seata-go/pull/190
[#158] TCC 模式支持 gRPC 调用
https://github.com/seata/seata-go/pull/158
[#213] 支持数据源代理功能
https://github.com/seata/seata-go/pull/213
[#240] 删除日志管理功能
https://github.com/seata/seata-go/pull/240
[#243] 添加 Update SQL 语法解析器
https://github.com/seata/seata-go/pull/243
[#191] 支持 TCC 防悬挂、空回滚处理功能
https://github.com/seata/seata-go/pull/191
[#264] 添加更新 SQL 解析器并删除 TiDB 解析器
https://github.com/seata/seata-go/pull/264
[#280] TCC 支持 HTTP 调用
https://github.com/seata/seata-go/pull/280
[#245] 支持 hasLogTable 判断逻辑
https://github.com/seata/seata-go/pull/245
[#288] 添加 Update SQL 的 Undo Log 生成功能
https://github.com/seata/seata-go/pull/288
[#296] 添加 Delete SQL 的 Undo Log 生成功能
https://github.com/seata/seata-go/pull/296
[#303] 添加异步处理器
https://github.com/seata/seata-go/pull/303
[#289] 撤销日志生成器后添加 MySQL 更新
https://github.com/seata/seata-go/pull/289
[#294] 添加 MySQL 元数据查询
https://github.com/seata/seata-go/pull/294
[#309] 初始化压缩类型
https://github.com/seata/seata-go/pull/309
[#301] 添加 Multi SQL 的 Undo Log 生成功能
https://github.com/seata/seata-go/pull/301
[#321] 添加 DEFLATE 压缩功能
https://github.com/seata/seata-go/pull/321
[#324] 添加 LZ4 压缩功能
https://github.com/seata/seata-go/pull/324
[#327] 添加 Zstd 压缩功能
https://github.com/seata/seata-go/pull/327
[#322] 添加 Gzip 压缩功能
https://github.com/seata/seata-go/pull/322
[#307] 添加 Flush Undo Log 功能
https://github.com/seata/seata-go/pull/307
[#329] 添加 Zip 压缩功能
https://github.com/seata/seata-go/pull/329
[#325] 添加 Multi update SQL 的 Undo Log 生成功能
https://github.com/seata/seata-go/pull/325
[#330] 添加 Multi delete SQL 的 Undo Log 生成功能
https://github.com/seata/seata-go/pull/330
[#319] 添加选择更新执行器
https://github.com/seata/seata-go/pull/319
[#320] 添加 Undo 逻辑
https://github.com/seata/seata-go/pull/320
[#337] 添加插入 Undo Log 逻辑
https://github.com/seata/seata-go/pull/337
[#355] 支持根据配置判断 Undo Log 保存字段个数
https://github.com/seata/seata-go/pull/355
[#365] 回滚 AT 之前做脏数据校验
https://github.com/seata/seata-go/pull/365
Bugfix
[#237] 修复在执行 OpenConnector 函数时候注册资源的 bug
https://github.com/seata/seata-go/pull/237
[#230] 修复远程异步调用无限循环的 bug
https://github.com/seata/seata-go/pull/230
[#258] 修复全局事务超时的 bug
https://github.com/seata/seata-go/pull/258
[#263] 修复 Mock 数据的 bug
https://github.com/seata/seata-go/pull/263
[#326] 修复 Fan-out 单元测试 bug
https://github.com/seata/seata-go/pull/326
[#350] 修复 panic 的 bug
https://github.com/seata/seata-go/pull/350
[#359] 修复插入 Undo Log 的 MySQL 参数 bug
https://github.com/seata/seata-go/pull/359
[#360] 修复 AT 回滚例子 bug
https://github.com/seata/seata-go/pull/360
[#363] 修复 Meta Data bug
https://github.com/seata/seata-go/pull/363
[#365] 修复反序列化 Undo Log bug
https://github.com/seata/seata-go/pull/365
Optimize
[#187] 优化 Seata-go 初始化流程
https://github.com/seata/seata-go/pull/187
[#196] 优化远程调用方法参数
https://github.com/seata/seata-go/pull/196
[#200] 添加 TCC gRPC 样例,优化注册资源和分支注册
https://github.com/seata/seata-go/pull/200
[#208] 优化删除不必要代码
https://github.com/seata/seata-go/pull/208
[#215] 优化使时间参数,提高可读性
https://github.com/seata/seata-go/pull/215
[#179] 支持 TCC 一阶段传入用户自定义参数
https://github.com/seata/seata-go/pull/179
[#198] 优化远程调用方法的传参
https://github.com/seata/seata-go/pull/198
[#235] 调整 MessageType 枚举值命名规范
https://github.com/seata/seata-go/pull/235
[#238] 添加一些待办事项注释,添加 Hook 例子
https://github.com/seata/seata-go/pull/238
[#261] 优化嵌套循环重试
https://github.com/seata/seata-go/pull/261
[#284] 优化重试逻辑
https://github.com/seata/seata-go/pull/284
[#286] 将 RM 和 TM 的初始化逻辑拆分
https://github.com/seata/seata-go/pull/286
[#287][#295] 重构 Seata Conn 逻辑
https://github.com/seata/seata-go/pull/287
https://github.com/seata/seata-go/pull/295
[#281] 优化全局事务使用
https://github.com/seata/seata-go/pull/281
[#302] 修改 Dubbo-go 版本
https://github.com/seata/seata-go/pull/302
[#336] 优化 AT 整体流程
https://github.com/seata/seata-go/pull/336
[#346] [#354] 优化 AT 事务提交流程
https://github.com/seata/seata-go/pull/346
https://github.com/seata/seata-go/pull/354
[#352] 优化获取元数据流程
https://github.com/seata/seata-go/pull/352
[#353] 修改方法接收者命名规范
https://github.com/seata/seata-go/pull/353
[#356] 优化 AT 事务回滚流程
https://github.com/seata/seata-go/pull/356
Test
[#154] 添加 Message 单元单测
https://github.com/seata/seata-go/pull/154
[#163] 添加 TM 单元单测
https://github.com/seata/seata-go/pull/163
[#203] 添加 Getty 单元测试
https://github.com/seata/seata-go/pull/203
[#204] 添加 Dubbo Filter 单元测试
https://github.com/seata/seata-go/pull/204
[#210] 添加 TCC 分支报告测试
https://github.com/seata/seata-go/pull/210
[#192] 添加 RM 单元测试
https://github.com/seata/seata-go/pull/192
[#229] 添加 Common 单元测试
https://github.com/seata/seata-go/pull/229
[#299] 添加 SQL Parser 单元测试
https://github.com/seata/seata-go/pull/299
[#332] 添加 Multi Delete Uundo Log 单元测试
https://github.com/seata/seata-go/pull/332
[#358] 添加 AT 回滚的例子
https://github.com/seata/seata-go/pull/358
Doc
[#202] 优化 GitHub CI 流程,添加 condecov 、 issue CI 工作流
https://github.com/seata/seata-go/pull/202
[#254] 添加自动检查 licence 的脚本
https://github.com/seata/seata-go/pull/254
[#305] 修改 CI 不要自动关闭 issue 和 PR
https://github.com/seata/seata-go/pull/305
致谢
非常感谢以下 Contributors 的代码贡献。若有无意遗漏,请报告。
AlexStocks:
https://github.com/AlexStocks
luky116:
https://github.com/luky116
106umao:
https://github.com/106umao
liiibpm:
https://github.com/liiibpm
elrond-g:
https://github.com/elrond-g
wang1309:
https://github.com/wang1309
iSuperCoder:
https://github.com/iSuperCoder
a631807682:
https://github.com/a631807682
betterwinsone:
https://github.com/betterwinsone
jasondeng1997:
https://github.com/jasondeng1997
chuntaojun:
https://github.com/chuntaojun
complone:
https://github.com/complone
miaoxueyu:
https://github.com/miaoxueyu
PangXing:
https://github.com/PangXing
georgehao:
https://github.com/georgehao
baerwang:
https://github.com/baerwang
raspberry-hu:
https://github.com/raspberry-hu
WyattJia:
https://github.com/WyattJia
Code-Fight:
https://github.com/Code-Fight
betterwinsone:
https://github.com/betterwinsone
同时,我们收到了社区反馈的很多有价值的 issue 和建议,非常感谢大家。
社区讨论群
扫扫加入微信群:
钉钉群号:44816898 33069364
Seata Star 一下✨:
https://github.com/seata/seata-go
本周推荐阅读
Seata AT 模式代码级详解
蚂蚁集团境外站点 Seata 实践与探索
Seata 多语言体系建设
Seata-php 半年规划