seata-golang 基于 Seata 的 Golang 版本分布式事务解决方案

发布于 2021-05-21 09:04:46 字数 1145 浏览 1540 评论 0

一个朴素的想法

作为一个刚入 Golang 坑的普通微服务开发者来讲,很容易产生一个朴素的想法,希望 Golang 微服务也有分布式事务解决方案。我们注意到阿里开源了 Java 版的分布式事务解决方案 Seata,本项目尝试将 Java 版的 Seata 改写一个 Golang 的版本。

在 Seata 没有 Golang 版本 client sdk 的情况下,Golang 版本的 TC Server 使用了和 Java 版 Seata 一样的通信协议,方便调试。 希望有同样朴素想法的开发者加入我们一起完善 Golang 版本的分布式事务解决方案。本方案参考了 dubbo-go 的实现。由于时间有限,且对 golang 的一些特性不甚了解,有些实现不太优雅,希望有更多开发者来参与并优化它。

MySQL Driver

mysql driver 集成 seata-golang 的工作已经完成,该 driver 基于 https://github.com/go-sql-driver/mysql 开发,开发者可以使用该 driver 对接到各种 orm 中,使用更方便。driver 的项目地址:https://github.com/opentrx/mysql 。 参考 demo:https://github.com/opentrx/seata-go-samples 。

运行 TC

编译

cd ${projectpath}/tc/app/cmd
go build

将编译好的程序移动到示例代码目录

mv cmd ${targetpath}/
cd ${targetpath}

启动 TC

./cmd start -config ${projectpath}/tc/app/profiles/dev/config.yml

GitHub 地址:https://github.com/opentrx/seata-golang

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

JSmiles

生命进入颠沛而奔忙的本质状态,并将以不断告别和相遇的陈旧方式继续下去。

0 文章
0 评论
84959 人气
更多

推荐作者

不再见

文章 0 评论 0

真是无聊啊

文章 0 评论 0

樱娆

文章 0 评论 0

浅语花开

文章 0 评论 0

烛光

文章 0 评论 0

绻影浮沉

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文