🔥A cross-language distributed transaction manager. Support xa, tcc, saga, transactional messages. 跨语言分布式事务管理器
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

28 lines
675 B

package dtmpb
import (
"github.com/yedf/dtm/dtmcli"
grpc "google.golang.org/grpc"
)
var clients = map[string]DtmClient{}
// GetDtmClient 1
func GetDtmClient(grpcServer string) (cli DtmClient, rerr error) {
if clients[grpcServer] == nil {
conn, err := grpc.Dial(grpcServer, grpc.WithInsecure(), grpc.WithBlock(), grpc.WithUnaryInterceptor(dtmcli.GrpcClientLog))
if err == nil {
clients[grpcServer] = NewDtmClient(conn)
dtmcli.Logf("dtm client inited for %s", grpcServer)
}
}
cli = clients[grpcServer]
return
}
// MustGetDtmClient 1
func MustGetDtmClient(grpcServer string) DtmClient {
cli, err := GetDtmClient(grpcServer)
dtmcli.E2P(err)
return cli
}