釋出概覽
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
投稿
歡迎大家將 Seata/Seata-go/Seata-php/Seata-js 相關的實踐文章投稿至:https://www.yuque.com/fred-x/ngfgiz/le1h4u5kn0xyhhoh
Seata Star 一下
https://github.com/seata/seata-go
本週推薦閱讀