Seata-go 1.1.0 釋出,補齊 AT 模式支援

SOFAStack發表於2023-03-15

圖片

釋出概覽

Seata-go 1.1.0 版本補齊了 AT 模式下對 Multi Delete、Multi Update、Insert on Update 和 Select for Update 的支援。至此 Seata-go 的 AT 模式與 Seata AT 模式全面對齊。

此版本給出了在 Dubbo-go/Gin/gRPC 中使用 Seata-go TCC/AT 兩種模式的示例。

示例連結:https://github.com/seata/seata-go-samples/tree/main/at

AT 模式:

AT 模式支援並整合了 Multi Delete SQL 語法
AT 模式支援並整合了 Multi Update SQL 語法
AT 模式支援並整合了 Insert on Update SQL 語法
AT 模式支援並整合了 Select for Update SQL 語法

配置檔案:

完善了更多地方讀取配置檔案功能

版本的主要更新如下

Feature:

[#491] 支援查詢全域性事務鎖
https://github.com/seata/seata-go/pull/491

[#482] 支援 AT 模式 Multi Delete SQL 執行器
https://github.com/seata/seata-go/pull/482

[#481] 支援 AT 模式 Multi Update SQL 執行器
https://github.com/seata/seata-go/pull/481

[#478] 支援 AT 模式 Select for Update SQL 執行器
https://github.com/seata/seata-go/pull/478

[#477] 支援 Undo Log 的 Json 序列化方式
https://github.com/seata/seata-go/pull/477

[#456] 支援 AT 模式 Insert on Update SQL 執行器
https://github.com/seata/seata-go/pull/456

[#444] 支援 BZip 壓縮演算法
https://github.com/seata/seata-go/pull/444

[#436] 支援讀取 RM 相關的配置檔案
https://github.com/seata/seata-go/pull/436

[#433] 支援 XA 連線管理器
https://github.com/seata/seata-go/pull/433

[#430] 支援讀取 Getty 相關的配置檔案
https://github.com/seata/seata-go/pull/430

Bugfix:

[#509] 修復 AT 模式下執行 Insert on Update 時 Undo Log 的 SQLType 欄位的問題
https://github.com/seata/seata-go/pull/509

[#495] 修復 Undo Log 的 SQLType 欄位的問題
https://github.com/seata/seata-go/pull/495

[#487] 修復 AT 執行時出現的問題
https://github.com/seata/seata-go/pull/487

[#472] 修復全域性事務中上下文丟失值問題
https://github.com/seata/seata-go/pull/472

[#461] 修復 Error_Code_test 中變數未定義導致的 CI 失敗問題
https://github.com/seata/seata-go/pull/461

[#459] 修復 Error 日誌重複列印問題
https://github.com/seata/seata-go/pull/459

[#452] 修復 AT 模式執行 Insert SQL 時 ID 增的報錯問題
https://github.com/seata/seata-go/pull/452

Optimize:

Seata-go 的示例專案已經全部遷移到新的倉庫:https://github.com/seata/seata-go-samples

[#507] 最佳化 AT 模式 Multiple Update SQL 執行器
https://github.com/seata/seata-go/pull/507

[#505] 最佳化 AT 模式 Multi SQL 執行器
https://github.com/seata/seata-go/pull/505

[#453] 最佳化 Message Type 和 Transaction error Code 列舉值
https://github.com/seata/seata-go/pull/453

[#447] 最佳化資料來源初始化流程
https://github.com/seata/seata-go/pull/447

[#466] 最佳化變數的命名
https://github.com/seata/seata-go/pull/466

Test:

[#445] 新增 Transaction error Code 的單元測試
https://github.com/seata/seata-go/pull/445

Doc:

[#492] 更新 Readme 檔案的已完成功能列表
https://github.com/seata/seata-go/pull/492

[#489] 新增 1.1.0 版本的 Change Log
https://github.com/seata/seata-go/pull/489

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

致謝

非常感謝以下 Contributors 的程式碼貢獻。若有無意遺漏,請報告。

@luky116
https://github.com/luky116

@georgehao
https://github.com/georgehao

@lxfeng1997
https://github.com/lxfeng1997
@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

@springrain
https://github.com/springrain

@Shaozhou Hu
https://github.com/raspberry-hu

@finkyky
https://github.com/Finkyky

同時,我們收到了社群反饋的很多有價值的 issue 和建議,非常感謝大家。

未來展望

Seata 社群近期與不少國內 go 語言微服務框架以及 ORM 框架背後的開發社群達成合作,比如 GORM 框架,已經整合到了 Sample 中,後續會將更多的 ORM 框架整合在 Seata-go-Samples 專案中。與 MOSN 社群的合作也在推進中,可實現真正的基於 Seata 的 Transaction Mesh。

Seata-go-samples 整合到 Seata-go GitHub Actions 的整合測試環境,目前已經在進行中,用於測試每個 PR,保證系統的相容性與穩定性。

預計在 4 月中旬釋出的 Seata-go v1.2.0,將實現 XA 分散式事務模式。Seata-go 正在開發中的 Saga 模式,將在現有的 Seata Saga 模式之上實現一定的突破:實現基於工作流的微服務編排能力。

當前的 Saga 模式僅實現了服務編排的正向推進與反向 Rollback 能力,更進一步的服務編排則可以實現 DAG、定時任務、任務批次排程,覆蓋工作流的所有流程,提升使用者在 Seata 這個平臺上的使用體驗。目前 Seata-go 依賴於 Seata Java 的 TC,按照這個工作計劃,可能需要在未來的 Seata-go 版本中實現一個功能更強大的 TC 排程。

Seata 多語言版本,目前發展最快的就是 Seata-go,其次成熟度較高的是 Seata-php,目前發展比較快的還有 Seata-js,歡迎對開源感興趣的朋友加入 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

本週推薦閱讀

圖片
Seata-go 釋出 1.0.3,補齊 AT 模式

圖片
Seata-go 1.0 重磅發版

圖片
Seata 多語言體系建設

圖片
Seata AT 模式程式碼級詳解

圖片

相關文章