Skip to content

go 微服务的分布式事务解决方案,java 版 seata 的翻版,待完善

License

Notifications You must be signed in to change notification settings

grzeng-go/seata-golang

This branch is 199 commits behind apache/incubator-seata-go:dev.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
liuxiaomin
Jun 23, 2020
c1a78b2 · Jun 23, 2020

History

59 Commits
May 29, 2020
Jun 17, 2020
Jun 23, 2020
Apr 25, 2020
Jun 7, 2020
Jun 23, 2020
Jun 7, 2020
Jun 17, 2020
Apr 25, 2020
Apr 10, 2020
Jun 17, 2020
Jun 17, 2020
Jun 17, 2020

Repository files navigation

seata-golang

一个朴素的想法

作为一个刚入 Golang 坑的普通微服务开发者来讲,很容易产生一个朴素的想法,希望 Golang 微服务也有分布式事务解决方案。我们注意到阿里开源了 Java 版的分布式事务解决方案 Seata,本项目尝试将 Java 版的 Seata 改写一个 Golang 的版本。 在 Seata 没有 Golang 版本 client sdk 的情况下,Golang 版本的 TC Server 使用了和 Java 版 Seata 一样的通信协议,方便调试。 希望有同样朴素想法的开发者加入我们一起完善 Golang 版本的分布式事务解决方案。本方案参考了 dubbo-go 的实现。由于时间有限,且对 golang 的一些特性不甚了解,有些实现不太优雅,希望有更多开发者来参与并优化它。

todo list

  • Memory Session Manager
  • DB Session Manager (only support mysql)
  • ETCD Session Manager
  • Metrics Collector
  • TM
  • RM TCC
  • RM AT
  • Client merged request
  • Read config from Config Center
  • Unit Test

运行 TC

  • 编译
cd ${projectpath}/tc/app/cmd
go build
  • 将编译好的程序移动到示例代码目录
mv cmd ${targetpath}/
cd ${targetpath}
  • 启动 TC
./cmd start -config ${projectpath}/tc/app/profiles/dev/config.yml

About

go 微服务的分布式事务解决方案,java 版 seata 的翻版,待完善

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Go 99.5%
  • TSQL 0.5%