Seata-go 1.2.0 已正式发布。
Seata 是一个非常成熟的分布式事务框架,在 Java 领域是事实上的分布式事务技术标准平台。Seata-go 是 seata 多语言生态中的 Go 语言实现版本,实现了 Java 和 Go 之间的互通,让 Go 开发者也能使用 seata-go 来实现分布式事务。请访问 Seata 官网查看快速开始和文档。
Seata-go 的原理和 Seata-java 保持一致,都是由 TM、RM 和 TC 组成,其中 TC 的功能复用 Java 的,TM 和 RM 功能后面会和 Seata-java 对齐。
发布概览
Seata-go 1.2.0 版本支持 XA 模式。XA 协议是由 X/Open 组织提出的分布式事务处理规范,其优点是对业务代码无侵入。当前 Seata-go 的 XA 模式支持 MySQL 数据库。至此,Seata-go 已经集齐 AT、TCC、Saga 和 XA 四种事务模式,完成了与 Seata Java 的功能对齐。
XA 模式的主要功能:
- 支持 XA 数据源代理
- 支持 XA 事务模式
XA 相关的 Samples 可以参考示例:
https://github.com/seata/seata-go-samples/tree/main/xa
在本版本中还修复了近期大量用户在使用过程中提交的 issue。
版本的主要更新如下
Feature:
[#467]实现 XA 模式支持 MySQL
https://github.com/seata/seata-go/pull/467
[#534] 支持 Session 的负载均衡
https://github.com/seata/seata-go/pull/534
Bugfix:
[#540] 修复初始化 XA 模式的 bug
https://github.com/seata/seata-go/pull/540
[#545] 修复 XA 模式获取 db 版本号的 bug
https://github.com/seata/seata-go/pull/545
[#548] 修复启动 XA 时候会失败的 bug
https://github.com/seata/seata-go/pull/548
[#556] 修复 XA 数据源的 bug
https://github.com/seata/seata-go/pull/556
[#562] 修复提交 XA 全局事务的 bug
https://github.com/seata/seata-go/pull/562
[#564] 修复提交 XA 分支事务的 bug
https://github.com/seata/seata-go/pull/564
[#566] 修复使用 XA 数据源执行本地事务的 bug
https://github.com/seata/seata-go/pull/566
Optimize:
[#523] 优化 CI 流程
https://github.com/seata/seata-go/pull/523
[#525] 将 Jackson 序列化重命名为 JSON
https://github.com/seata/seata-go/pull/525
[#532] 移除重复的代码
https://github.com/seata/seata-go/pull/532
[#536] 优化 go import 代码格式
https://github.com/seata/seata-go/pull/536
[#554] 优化 XA 模式的性能
_https://github.com/seata/seata-go/pull/_554
[#561] 优化 XA 模式的日志输出
https://github.com/seata/seata-go/pull/561
Test:
[#535] 添加集成测试
https://github.com/seata/seata-go/pull/535
Doc:
[#550] 添加 1.2.0 版本的改动日志
https://github.com/seata/seata-go/pull/550
详情查看 Release Notes。