Documentation ¶
Index ¶
- Constants
- Variables
- func BaseAddRoute(app *gin.Engine)
- func BaseAppStartup() *gin.Engine
- func GetBalanceByUID(uid int, store string) int
- func GetRedisAccountKey(uid int) string
- func GrpcStartup() *grpc.Server
- func MongoGet() *mongo.Client
- func MustBarrierFromGin(c *gin.Context) *dtmcli.BranchBarrier
- func MustBarrierFromGrpc(ctx context.Context) *dtmcli.BranchBarrier
- func PopulateDB(skipDrop bool)
- func QsFireRequest() string
- func QsMain()
- func QsStartSvr()
- func RedisGet() *redis.Client
- func RegisterBusiServer(s grpc.ServiceRegistrar, srv BusiServer)
- func ResetXaData()
- func RunGrpc(server *grpc.Server)
- func RunHTTP(app *gin.Engine)
- func SagaAdjustBalance(db dtmcli.DB, uid int, amount int, result string) error
- func SagaMongoAdjustBalance(ctx context.Context, mc *mongo.Client, uid int, amount int, result string) error
- func SetGrpcHeaderForHeadersYes(ctx context.Context, method string, req, reply interface{}, ...) error
- func SetHTTPHeaderForHeadersYes(c *resty.Client, r *resty.Request) error
- func SetMongoBothAccount(amountA int, amountB int)
- func SetRedisBothAccount(amountA int, ammountB int)
- func SetSleepCancelHandler(handler SleepCancelHandler)
- func SetupMongoBarrierAndBusi()
- func Startup() (*gin.Engine, *grpc.Server)
- func TccBarrierTransOutCancel(c *gin.Context) interface{}
- type AutoEmptyString
- type BusiClient
- type BusiReply
- type BusiServer
- type ReqGrpc
- func (*ReqGrpc) Descriptor() ([]byte, []int)deprecated
- func (x *ReqGrpc) GetAmount() int64
- func (x *ReqGrpc) GetTransInResult() string
- func (x *ReqGrpc) GetTransOutResult() string
- func (*ReqGrpc) ProtoMessage()
- func (x *ReqGrpc) ProtoReflect() protoreflect.Message
- func (x *ReqGrpc) Reset()
- func (x *ReqGrpc) String() string
- type ReqHTTP
- type SleepCancelHandler
- type UnimplementedBusiServer
- func (UnimplementedBusiServer) QueryPrepared(context.Context, *ReqGrpc) (*BusiReply, error)
- func (UnimplementedBusiServer) QueryPreparedB(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) QueryPreparedRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransIn(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInConfirm(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInRevert(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInRevertBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInRevertRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInTcc(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInTccNested(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransInXa(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOut(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutConfirm(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutHeaderNo(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutHeaderYes(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutRevert(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutRevertBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutRevertRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutTcc(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) TransOutXa(context.Context, *ReqGrpc) (*emptypb.Empty, error)
- func (UnimplementedBusiServer) XaNotify(context.Context, *emptypb.Empty) (*emptypb.Empty, error)
- type UnsafeBusiServer
- type UserAccount
Constants ¶
const ( // BusiAPI busi api prefix BusiAPI = "/api/busi" // BusiPort busi server port BusiPort = 8081 // BusiGrpcPort busi server port BusiGrpcPort = 58081 )
const Mongo = "mongo"
Mongo 1
const Redis = "redis"
Redis 1
const TransInUID = 2
TransInUID 2
const TransOutUID = 1
TransOutUID 1
Variables ¶
var Busi = fmt.Sprintf("http://localhost:%d%s", BusiPort, BusiAPI)
Busi busi service url prefix
var BusiConf = dtmcli.DBConf{ Driver: "mysql", Host: StoreHost, Port: 3306, User: "root", }
BusiConf 1
var BusiGrpc = fmt.Sprintf("localhost:%d", BusiGrpcPort)
BusiGrpc busi service grpc address
var BusiJrpcURL = fmt.Sprintf("http://localhost:%d/api/json-rpc?method=", BusiPort)
BusiJrpcURL url prefix for busi
var Busi_ServiceDesc = grpc.ServiceDesc{ ServiceName: "busi.Busi", HandlerType: (*BusiServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "TransIn", Handler: _Busi_TransIn_Handler, }, { MethodName: "TransOut", Handler: _Busi_TransOut_Handler, }, { MethodName: "TransInRevert", Handler: _Busi_TransInRevert_Handler, }, { MethodName: "TransOutRevert", Handler: _Busi_TransOutRevert_Handler, }, { MethodName: "TransInConfirm", Handler: _Busi_TransInConfirm_Handler, }, { MethodName: "TransOutConfirm", Handler: _Busi_TransOutConfirm_Handler, }, { MethodName: "XaNotify", Handler: _Busi_XaNotify_Handler, }, { MethodName: "TransInXa", Handler: _Busi_TransInXa_Handler, }, { MethodName: "TransOutXa", Handler: _Busi_TransOutXa_Handler, }, { MethodName: "TransInTcc", Handler: _Busi_TransInTcc_Handler, }, { MethodName: "TransOutTcc", Handler: _Busi_TransOutTcc_Handler, }, { MethodName: "TransInTccNested", Handler: _Busi_TransInTccNested_Handler, }, { MethodName: "TransInBSaga", Handler: _Busi_TransInBSaga_Handler, }, { MethodName: "TransOutBSaga", Handler: _Busi_TransOutBSaga_Handler, }, { MethodName: "TransInRevertBSaga", Handler: _Busi_TransInRevertBSaga_Handler, }, { MethodName: "TransOutRevertBSaga", Handler: _Busi_TransOutRevertBSaga_Handler, }, { MethodName: "TransOutHeaderYes", Handler: _Busi_TransOutHeaderYes_Handler, }, { MethodName: "TransOutHeaderNo", Handler: _Busi_TransOutHeaderNo_Handler, }, { MethodName: "TransInRedis", Handler: _Busi_TransInRedis_Handler, }, { MethodName: "TransOutRedis", Handler: _Busi_TransOutRedis_Handler, }, { MethodName: "TransInRevertRedis", Handler: _Busi_TransInRevertRedis_Handler, }, { MethodName: "TransOutRevertRedis", Handler: _Busi_TransOutRevertRedis_Handler, }, { MethodName: "QueryPrepared", Handler: _Busi_QueryPrepared_Handler, }, { MethodName: "QueryPreparedB", Handler: _Busi_QueryPreparedB_Handler, }, { MethodName: "QueryPreparedRedis", Handler: _Busi_QueryPreparedRedis_Handler, }, }, Streams: []grpc.StreamDesc{}, Metadata: "test/busi/busi.proto", }
Busi_ServiceDesc is the grpc.ServiceDesc for Busi service. It's only intended for direct use with grpc.RegisterService, and not to be introspected or modified (even as a copy)
var DtmClient dtmgpb.DtmClient
DtmClient grpc client for dtm
var File_test_busi_busi_proto protoreflect.FileDescriptor
var MainSwitch mainSwitchType
MainSwitch controls busi success or fail
var StoreHost = "localhost"
StoreHost examples will connect to dtm.pub; tests will connect to localhost
var WebHookResult gin.H
WebHookResult 1
Functions ¶
func GetBalanceByUID ¶ added in v1.11.0
GetBalanceByUID 1
func GetRedisAccountKey ¶ added in v1.11.0
GetRedisAccountKey return redis key for uid
func MustBarrierFromGin ¶
func MustBarrierFromGin(c *gin.Context) *dtmcli.BranchBarrier
MustBarrierFromGin 1
func MustBarrierFromGrpc ¶
func MustBarrierFromGrpc(ctx context.Context) *dtmcli.BranchBarrier
MustBarrierFromGrpc 1
func RegisterBusiServer ¶
func RegisterBusiServer(s grpc.ServiceRegistrar, srv BusiServer)
func ResetXaData ¶ added in v1.16.0
func ResetXaData()
ResetXaData will rollback all pending xa transaction
func SagaAdjustBalance ¶ added in v1.9.0
SagaAdjustBalance 1
func SagaMongoAdjustBalance ¶ added in v1.12.0
func SagaMongoAdjustBalance(ctx context.Context, mc *mongo.Client, uid int, amount int, result string) error
SagaMongoAdjustBalance 1
func SetGrpcHeaderForHeadersYes ¶ added in v1.8.2
func SetGrpcHeaderForHeadersYes(ctx context.Context, method string, req, reply interface{}, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error
SetGrpcHeaderForHeadersYes interceptor to set head for HeadersYes
func SetHTTPHeaderForHeadersYes ¶ added in v1.11.0
func SetHTTPHeaderForHeadersYes(c *resty.Client, r *resty.Request) error
SetHTTPHeaderForHeadersYes interceptor to set head for HeadersYes
func SetMongoBothAccount ¶ added in v1.12.0
SetMongoBothAccount 1
func SetRedisBothAccount ¶ added in v1.10.2
SetRedisBothAccount 1
func SetSleepCancelHandler ¶
func SetSleepCancelHandler(handler SleepCancelHandler)
SetSleepCancelHandler 1
func SetupMongoBarrierAndBusi ¶ added in v1.12.0
func SetupMongoBarrierAndBusi()
SetupMongoBarrierAndBusi 1
func TccBarrierTransOutCancel ¶
TccBarrierTransOutCancel will be use in test
Types ¶
type AutoEmptyString ¶
type AutoEmptyString struct {
// contains filtered or unexported fields
}
AutoEmptyString auto reset to empty when used once
func (*AutoEmptyString) Fetch ¶
func (s *AutoEmptyString) Fetch() string
Fetch fetch the stored value, then reset the value to empty
func (*AutoEmptyString) SetOnce ¶
func (s *AutoEmptyString) SetOnce(v string)
SetOnce set a value once
type BusiClient ¶
type BusiClient interface { TransIn(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOut(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInRevert(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutRevert(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInConfirm(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutConfirm(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) XaNotify(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInXa(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutXa(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInTcc(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutTcc(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInTccNested(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInBSaga(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutBSaga(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInRevertBSaga(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutRevertBSaga(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutHeaderYes(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutHeaderNo(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInRedis(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutRedis(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransInRevertRedis(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) TransOutRevertRedis(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) QueryPrepared(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*BusiReply, error) QueryPreparedB(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) QueryPreparedRedis(ctx context.Context, in *ReqGrpc, opts ...grpc.CallOption) (*emptypb.Empty, error) }
BusiClient is the client API for Busi service.
For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.golang.ir/google.golang.org/grpc/?tab=doc#ClientConn.NewStream.
var BusiCli BusiClient
BusiCli grpc client for busi
func NewBusiClient ¶
func NewBusiClient(cc grpc.ClientConnInterface) BusiClient
type BusiReply ¶
type BusiReply struct { Message string `protobuf:"bytes,1,opt,name=message,proto3" json:"message,omitempty"` // contains filtered or unexported fields }
func (*BusiReply) Descriptor
deprecated
func (*BusiReply) GetMessage ¶
func (*BusiReply) ProtoMessage ¶
func (*BusiReply) ProtoMessage()
func (*BusiReply) ProtoReflect ¶
func (x *BusiReply) ProtoReflect() protoreflect.Message
type BusiServer ¶
type BusiServer interface { TransIn(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOut(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInRevert(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutRevert(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInConfirm(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutConfirm(context.Context, *ReqGrpc) (*emptypb.Empty, error) XaNotify(context.Context, *emptypb.Empty) (*emptypb.Empty, error) TransInXa(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutXa(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInTcc(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutTcc(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInTccNested(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInRevertBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutRevertBSaga(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutHeaderYes(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutHeaderNo(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransInRevertRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error) TransOutRevertRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error) QueryPrepared(context.Context, *ReqGrpc) (*BusiReply, error) QueryPreparedB(context.Context, *ReqGrpc) (*emptypb.Empty, error) QueryPreparedRedis(context.Context, *ReqGrpc) (*emptypb.Empty, error) // contains filtered or unexported methods }
BusiServer is the server API for Busi service. All implementations must embed UnimplementedBusiServer for forward compatibility
type ReqGrpc ¶ added in v1.15.0
type ReqGrpc struct { Amount int64 `protobuf:"varint,1,opt,name=Amount,proto3" json:"Amount,omitempty"` TransOutResult string `protobuf:"bytes,2,opt,name=TransOutResult,proto3" json:"TransOutResult,omitempty"` TransInResult string `protobuf:"bytes,3,opt,name=TransInResult,proto3" json:"TransInResult,omitempty"` // contains filtered or unexported fields }
DtmRequest request sent to dtm server
func GenReqGrpc ¶ added in v1.15.0
GenReqGrpc 1
func (*ReqGrpc) Descriptor
deprecated
added in
v1.15.1
func (*ReqGrpc) GetTransInResult ¶ added in v1.15.1
func (*ReqGrpc) GetTransOutResult ¶ added in v1.15.1
func (*ReqGrpc) ProtoMessage ¶ added in v1.15.1
func (*ReqGrpc) ProtoMessage()
func (*ReqGrpc) ProtoReflect ¶ added in v1.15.1
func (x *ReqGrpc) ProtoReflect() protoreflect.Message
type ReqHTTP ¶ added in v1.15.0
type ReqHTTP struct { Amount int `json:"amount"` TransInResult string `json:"trans_in_result"` TransOutResult string `json:"trans_out_Result"` Store string `json:"store"` // default mysql, value can be mysql|redis }
ReqHTTP transaction request payload
func GenReqHTTP ¶ added in v1.15.0
GenReqHTTP 1
type SleepCancelHandler ¶
SleepCancelHandler 1
type UnimplementedBusiServer ¶
type UnimplementedBusiServer struct { }
UnimplementedBusiServer must be embedded to have forward compatible implementations.
func (UnimplementedBusiServer) QueryPrepared ¶ added in v1.9.0
func (UnimplementedBusiServer) QueryPreparedB ¶ added in v1.9.0
func (UnimplementedBusiServer) QueryPreparedRedis ¶ added in v1.11.0
func (UnimplementedBusiServer) TransInBSaga ¶
func (UnimplementedBusiServer) TransInConfirm ¶
func (UnimplementedBusiServer) TransInRedis ¶ added in v1.11.0
func (UnimplementedBusiServer) TransInRevert ¶
func (UnimplementedBusiServer) TransInRevertBSaga ¶
func (UnimplementedBusiServer) TransInRevertRedis ¶ added in v1.11.0
func (UnimplementedBusiServer) TransInTcc ¶
func (UnimplementedBusiServer) TransInTccNested ¶
func (UnimplementedBusiServer) TransOutBSaga ¶
func (UnimplementedBusiServer) TransOutConfirm ¶
func (UnimplementedBusiServer) TransOutHeaderNo ¶ added in v1.8.2
func (UnimplementedBusiServer) TransOutHeaderYes ¶ added in v1.8.2
func (UnimplementedBusiServer) TransOutRedis ¶ added in v1.11.0
func (UnimplementedBusiServer) TransOutRevert ¶
func (UnimplementedBusiServer) TransOutRevertBSaga ¶
func (UnimplementedBusiServer) TransOutRevertRedis ¶ added in v1.11.0
func (UnimplementedBusiServer) TransOutTcc ¶
func (UnimplementedBusiServer) TransOutXa ¶
type UnsafeBusiServer ¶
type UnsafeBusiServer interface {
// contains filtered or unexported methods
}
UnsafeBusiServer may be embedded to opt out of forward compatibility for this service. Use of this interface is not recommended, as added methods to BusiServer will result in compilation errors.
type UserAccount ¶
UserAccount 1