發佈概覽
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:
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
本週推薦閱讀