生产环境可用的 Seata-go 1.2.0 来啦!!!

简介: Seata-go 1.2.0 版本支持 XA 模式。XA 协议是由 X/Open 组织提出的分布式事务处理规范,其优点是对业务代码无侵入。当前 Seata-go 的 XA 模式支持 MySQL 数据库。至此,Seata-go 已经集齐 AT、TCC、Saga 和 XA 四种事务模式,完成了与 Seata Java 的功能对齐。

图片

文|刘月财(GitHub ID:luky116)

360 服务端开发专家

Seata-go 项目负责人

本文 2752 字 阅读 7 分钟

发布概览

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

英文版:https://github.com/seata/seata-go/releases/tag/v1.2.0

致谢

非常感谢以下 Contributors 的代码贡献。若有无意遗漏,请报告。

@georgehao

https://github.com/georgehao

@luky116

https://github.com/luky116

@jasondeng1997

https://github.com/jasondeng1997

@106umao

https://github.com/106umao

@wang1309

https://github.com/wang1309

@iSuperCoder

https://github.com/iSuperCoder

@Charlie17Li

https://github.com/Charlie17Li

@Code-Fight

https://github.com/Code-Fight

@Kirhaku

https://github.com/Kirhaku

@Vaderkai

https://github.com/VaderKai

同时,我们收到了社区反馈的很多有价值的 issue 和建议,非常感谢大家。

社区讨论群

扫码加入钉钉群:

Seata-go 社区群:33069364

图片

Seata-go 开发群:44816898
图片

未来展望

Seata 社区近期与不少国内 Go 语言微服务框架以及 ORM 框架背后的开发社区达成合作,比如 GORM 框架,已经集成到了 Sample 中,后续会将更多的 ORM 框架集成在 Seata-go-samples 项目中。

Seata-go-samples 集成到 Seata-go GitHub Actions 的集成测试环境,目前已经在进行中,用于测试每个 PR,保证系统的兼容性与稳定性。
Seata-go 后续的 Saga 模式,计划采用 Temporal 框架来做服务编排,目前正在规划中,期待能给用户带来更实用便利的 Saga 使用体验。

欢迎对开源感兴趣的朋友加入 Seata 开源建设中来。

常用链接

Seata:

http://github.com/seata/seata

https://github.com/seata/seata-php

https://github.com/seata/seata-js

https://github.com/seata/seata-go

Samples:

https://github.com/seata/seata-samples

https://github.com/seata/seata-go-samples

官网:

https://seata.io/

投稿

欢迎大家将 Seata/Seata-go/Seata-php/Seata-js 相关的实践文章投稿至:https://www.yuque.com/fred-x/ngfgiz/le1h4u5kn0xyhhoh

Seata Star 一下✨:
https://github.com/seata/seata-go

相关文章
|
7月前
|
IDE Java Linux
Seata常见问题之重新打包以单独用jar来部署如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
269 1
|
7月前
|
SQL Oracle 关系型数据库
seata版本问题之码云拉取代码异常如何解决
Seata是一款开源的分布式事务解决方案,旨在提供高效且无缝的分布式事务服务;在集成和使用Seata过程中,开发者可能会遇到不同的异常问题,本合集针对Seata常见异常进行系统整理,为开发者提供详细的问题分析和解决方案,助力高效解决分布式事务中的难题。
283 6
|
7月前
|
Java Linux Maven
要自定义编译和打包Seata-All
要自定义编译和打包Seata-All
170 2
|
4月前
|
Java 开发工具 git
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
【Azure 应用服务】本地Git部署Java项目到App Server,访问无效的原因
|
7月前
|
Java Linux Maven
自定义编译和打包Seata-All
自定义编译和打包Seata-All
232 1
|
7月前
|
Java 关系型数据库 微服务
Seata常见问题之项目一直启动不成功如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
602 0
|
SQL 自然语言处理 网络协议
Seata-go TCC 设计与实现
本文主要介绍 seata-go 中 TCC 的设计思路、异常处理以及在实战中的使用。
Seata-go TCC 设计与实现
|
SQL JSON 自然语言处理
Seata-go 1.1.0 发布,补齐 AT 模式支持
Seata-go 1.1.0 版本补齐了 AT 模式下对 Multi Delete、Multi Update、Insert on Update 和 Select for Update 的支持。至此 Seata-go 的 AT 模式与 Seata AT 模式全面对齐。
Seata-go 1.1.0 发布,补齐 AT 模式支持
解决go项目引进etcd/clientv3的一个报错grpc版本过高
解决go项目引进etcd/clientv3的一个报错"google.golang.org/grpc/naming: module google.golang.org/grpc@latest found (v1.53.0), but does not contain package google.golang.org/grpc/naming " 如果你的go版本高于1.17 请忽略这个处理办法,使用"go.etcd.io/etcd/client/v3" 因为etcd v3版本接口和最新的grpc兼容,所以不用再像网上历史文章那样去处理,直接替换etcd包地址即可。
2359 0
|
存储 NoSQL API
(9)go-micro微服务Redis配置
(9)go-micro微服务Redis配置
122 0