Browse Source

barrier grpc used

pull/25/head
yedf2 5 years ago
parent
commit
d3eb568929
  1. 2
      README.md
  2. 8
      dtmgrpc/barrier.go
  3. 4
      examples/base_types.go

2
README.md

@ -46,7 +46,7 @@ DTM是首款golang的开源分布式事务管理器,优雅的解决了幂等
|AT事务|<span style="color:red"></span>|<span style="color:green"></span>|AT与XA类似,性能更好,但有脏回滚|
| SAGA事务 |<span style="color:orange">简单模式</span> |<span style="color:green">状态机复杂模式</span> |dtm的状态机模式在规划中|
|事务消息|<span style="color:green"></span>|<span style="color:red"></span>|dtm提供类似rocketmq的事务消息|
|通信协议|HTTP|dubbo等协议,无HTTP|dtm后续将支持grpc类协议|
|通信协议|HTTP、GRPC|dubbo等协议,无HTTP||
|star数量|<img src="https://img.shields.io/github/stars/yedf/dtm.svg?style=social" alt="github stars"/>|<img src="https://img.shields.io/github/stars/seata/seata.svg?style=social" alt="github stars"/>|dtm从20210604发布0.1,发展快|
从上面对比的特性来看,如果您的语言栈包含了Java之外的语言,那么dtm是您的首选。如果您的语言栈是Java,您也可以选择接入dtm,使用子事务屏障技术,简化您的业务编写。

8
dtmgrpc/barrier.go

@ -27,3 +27,11 @@ func (bb *BranchBarrier) Call(db *sql.DB, busiCall dtmcli.BusiFunc) (rerr error)
}
return err
}
// BarrierFromGrpc 从BusiRequest生成一个Barrier
func BarrierFromGrpc(in *BusiRequest) (*BranchBarrier, error) {
b, err := dtmcli.BarrierFrom(in.Info.TransType, in.Info.Gid, in.Info.BranchID, in.Info.BranchType)
return &BranchBarrier{
BranchBarrier: b,
}, err
}

4
examples/base_types.go

@ -79,8 +79,8 @@ func MustBarrierFromGin(c *gin.Context) *dtmcli.BranchBarrier {
}
// MustBarrierFromGrpc 1
func MustBarrierFromGrpc(in *dtmgrpc.BusiRequest) *dtmcli.BranchBarrier {
ti, err := dtmcli.BarrierFrom(in.Info.TransType, in.Info.Gid, in.Info.BranchID, in.Info.BranchType)
func MustBarrierFromGrpc(in *dtmgrpc.BusiRequest) *dtmgrpc.BranchBarrier {
ti, err := dtmgrpc.BarrierFromGrpc(in)
dtmcli.FatalIfError(err)
return ti
}

Loading…
Cancel
Save