dtmgrpc

package module
v1.8.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 1, 2022 License: BSD-3-Clause Imports: 12 Imported by: 3

README

a client for distributed transaction manager dtm

dtmgrpc 是分布式事务管理器dtm的客户端sdk

dtmgrpc

这个库的代码与dtm下的dtmgrpc代码保持完全同步,如果您需要线上使用,那么当前的dtmgrpc相关的依赖非常少,对于最终打包的镜像也会很少

具体文档和使用方式,请参考dtm

完整示例

dtmgrpc-go-sample

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddUnaryInterceptor added in v1.8.2

func AddUnaryInterceptor(interceptor grpc.UnaryClientInterceptor)

func BarrierFromGrpc

func BarrierFromGrpc(ctx context.Context) (*dtmcli.BranchBarrier, error)

BarrierFromGrpc generate a Barrier from grpc context

func MustGenGid

func MustGenGid(grpcServer string) string

MustGenGid must gen a gid from grpcServer

func TccGlobalTransaction

func TccGlobalTransaction(dtm string, gid string, tccFunc TccGlobalFunc) (rerr error)

TccGlobalTransaction begin a tcc global transaction dtm dtm服务器地址 gid 全局事务id tccFunc tcc事务函数,里面会定义全局事务的分支

func TccGlobalTransaction2 added in v1.8.4

func TccGlobalTransaction2(dtm string, gid string, custom func(*TccGrpc), tccFunc TccGlobalFunc) (rerr error)

TccGlobalTransaction2 new version of TccGlobalTransaction

func UseDriver

func UseDriver(driverName string) error

UseDriver use the specified driver to handle grpc urls

Types

type MsgGrpc

type MsgGrpc struct {
	dtmcli.Msg
}

MsgGrpc reliable msg type

func NewMsgGrpc

func NewMsgGrpc(server string, gid string) *MsgGrpc

NewMsgGrpc create new msg

func (*MsgGrpc) Add

func (s *MsgGrpc) Add(action string, msg proto.Message) *MsgGrpc

Add add a new step

func (*MsgGrpc) Prepare

func (s *MsgGrpc) Prepare(queryPrepared string) error

Prepare prepare the msg, msg will later be submitted

func (*MsgGrpc) Submit

func (s *MsgGrpc) Submit() error

Submit submit the msg

type SagaGrpc

type SagaGrpc struct {
	dtmcli.Saga
}

SagaGrpc struct of saga

func NewSagaGrpc

func NewSagaGrpc(server string, gid string) *SagaGrpc

NewSagaGrpc create a saga

func (*SagaGrpc) Add

func (s *SagaGrpc) Add(action string, compensate string, payload proto.Message) *SagaGrpc

Add add a saga step

func (*SagaGrpc) AddBranchOrder

func (s *SagaGrpc) AddBranchOrder(branch int, preBranches []int) *SagaGrpc

AddBranchOrder specify that branch should be after preBranches. branch should is larger than all the element in preBranches

func (*SagaGrpc) EnableConcurrent

func (s *SagaGrpc) EnableConcurrent() *SagaGrpc

EnableConcurrent enable the concurrent exec of sub trans

func (*SagaGrpc) Submit

func (s *SagaGrpc) Submit() error

Submit submit the saga trans

type TccGlobalFunc

type TccGlobalFunc func(tcc *TccGrpc) error

TccGlobalFunc type of global tcc call

type TccGrpc

type TccGrpc struct {
	dtmimp.TransBase
}

TccGrpc struct of tcc

func TccFromGrpc

func TccFromGrpc(ctx context.Context) (*TccGrpc, error)

TccFromGrpc tcc from request info

func (*TccGrpc) CallBranch

func (t *TccGrpc) CallBranch(busiMsg proto.Message, tryURL string, confirmURL string, cancelURL string, reply interface{}) error

CallBranch call a tcc branch

type XaGrpc

type XaGrpc struct {
	dtmimp.TransBase
}

XaGrpc xa transaction

func XaGrpcFromRequest

func XaGrpcFromRequest(ctx context.Context) (*XaGrpc, error)

XaGrpcFromRequest construct xa info from request

func (*XaGrpc) CallBranch

func (x *XaGrpc) CallBranch(msg proto.Message, url string, reply interface{}) error

CallBranch call a xa branch

type XaGrpcClient

type XaGrpcClient struct {
	dtmimp.XaClientBase
}

XaGrpcClient xa client

func NewXaGrpcClient

func NewXaGrpcClient(server string, mysqlConf dtmcli.DBConf, notifyURL string) *XaGrpcClient

NewXaGrpcClient construct a xa client

func (*XaGrpcClient) HandleCallback

func (xc *XaGrpcClient) HandleCallback(ctx context.Context) (*emptypb.Empty, error)

HandleCallback 处理commit/rollback的回调

func (*XaGrpcClient) XaGlobalTransaction

func (xc *XaGrpcClient) XaGlobalTransaction(gid string, xaFunc XaGrpcGlobalFunc) error

XaGlobalTransaction start a xa global transaction

func (*XaGrpcClient) XaGlobalTransaction2 added in v1.8.4

func (xc *XaGrpcClient) XaGlobalTransaction2(gid string, custom func(*XaGrpc), xaFunc XaGrpcGlobalFunc) error

XaGlobalTransaction2 new version of XaGlobalTransaction. support custom

func (*XaGrpcClient) XaLocalTransaction

func (xc *XaGrpcClient) XaLocalTransaction(ctx context.Context, msg proto.Message, xaFunc XaGrpcLocalFunc) error

XaLocalTransaction start a xa local transaction

type XaGrpcGlobalFunc

type XaGrpcGlobalFunc func(xa *XaGrpc) error

XaGrpcGlobalFunc type of xa global function

type XaGrpcLocalFunc

type XaGrpcLocalFunc func(db *sql.DB, xa *XaGrpc) error

XaGrpcLocalFunc type of xa local function

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL