基于EventBus,使用Go语言实现最终一致性的微服务分布式事务解决方案
- GORM - 使用 GORM ORM 框架
- Sqlx - 使用 jmoiron/sqlx 库
- SqlxPlus - 使用 nilorg/sqlxplus 库(支持 ExecTransaction)
import (
"github.com/nilorg/outbox"
"gorm.io/gorm"
)
// 创建 GORM 引擎
engine, err := outbox.New(outbox.EngineTypeGorm, db, eventBus)import (
"github.com/nilorg/outbox"
"github.com/jmoiron/sqlx"
)
// 创建 Sqlx 引擎
engine, err := outbox.New(outbox.EngineTypeSqlx, db, eventBus)import (
"github.com/nilorg/outbox"
"github.com/jmoiron/sqlx"
)
// 创建 SqlxPlus 引擎 (支持 sqlxplus.ExecTransaction)
engine, err := outbox.New(outbox.EngineTypeSqlxPlus, db, eventBus)详细示例请参考:
- GORM 示例: example/gorm/main.go
- Sqlx 示例: example/sqlx/main.go
- SqlxPlus 示例: example/sqlxplus/main.go