Skip to content

Latest commit

 

History

History
40 lines (27 loc) · 1.09 KB

README-cn.md

File metadata and controls

40 lines (27 loc) · 1.09 KB

dtmgrpc-qs

client/dtmgrpc的最简go使用示例

快速开始

安装运行dtm

参考dtm安装运行

启动示例

go run main.go

输出

可以从dtmcli-qs的日志里看到执行的顺序如下:

  • TransOut
  • TransIn

整个saga事务执行成功

示例解读

	gid := shortuuid.New() // 生成gid
	req := &busi.BusiReq{Amount: 30} // 微服务的载荷

	saga := dtmgrpc.NewSagaGrpc(busi.DtmGrpcServer, gid).
    // 添加一个TransOut的子事务,正向操作为grpc的url: busi.BusiGrpc+"/busi.Busi/TransOut", 补偿操作类似
		Add(busi.BusiGrpc+"/busi.Busi/TransOut", busi.BusiGrpc+"/busi.Busi/TransOutRevert", req).
    // 添加一个TransIn的子事务,正向操作为grpc的url: busi.BusiGrpc+"/busi.Busi/TransIn", 补偿操作类似
		Add(busi.BusiGrpc+"/busi.Busi/TransIn", busi.BusiGrpc+"/busi.Busi/TransInRevert", req)
  // 提交saga事务,dtm会完成所有的子事务/回滚所有的子事务
	err := saga.Submit()

更多示例,详见dtm-examples