Documentation
¶
Overview ¶
Package seata provides a Seata distributed-transaction plugin for the go-lynx framework. It wraps seata-go and exposes global transaction management via TxSeataClient, supporting AT/TCC/SAGA/XA modes as configured in the Seata configuration file. The plugin integrates with the lynx runtime contract, Prometheus metrics, and context-aware lifecycle hooks.
Index ¶
- type SeataMetrics
- func (m *SeataMetrics) RecordHealthCheck(status string)
- func (m *SeataMetrics) RecordTransaction(status string)
- func (m *SeataMetrics) RecordTransactionDuration(status string, duration float64)
- func (m *SeataMetrics) SetActiveTransactions(count float64)
- func (m *SeataMetrics) SetBranchTransactions(count float64)
- type TxSeataClient
- func (t *TxSeataClient) CheckHealth() error
- func (t *TxSeataClient) CleanupTasks() error
- func (t *TxSeataClient) Configure(cfg any) error
- func (t *TxSeataClient) GetConfig() *conf.Seata
- func (t *TxSeataClient) GetConfigFilePath() string
- func (t *TxSeataClient) InitializeContext(ctx context.Context, plugin plugins.Plugin, rt plugins.Runtime) error
- func (t *TxSeataClient) InitializeResources(rt plugins.Runtime) error
- func (t *TxSeataClient) IsContextAware() bool
- func (t *TxSeataClient) IsEnabled() bool
- func (t *TxSeataClient) PluginProtocol() plugins.PluginProtocol
- func (t *TxSeataClient) StartContext(ctx context.Context, _ plugins.Plugin) error
- func (t *TxSeataClient) StartupTasks() error
- func (t *TxSeataClient) StopContext(ctx context.Context, _ plugins.Plugin) error
- func (t *TxSeataClient) WithGlobalTx(ctx context.Context, name string, timeout time.Duration, ...) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type SeataMetrics ¶ added in v1.5.4
type SeataMetrics struct {
// contains filtered or unexported fields
}
SeataMetrics defines Seata-related monitoring metrics.
func GetMetrics ¶ added in v1.5.4
func GetMetrics() *SeataMetrics
GetMetrics returns the Seata metrics instance for external use.
func (*SeataMetrics) RecordHealthCheck ¶ added in v1.5.4
func (m *SeataMetrics) RecordHealthCheck(status string)
RecordHealthCheck records a health check.
func (*SeataMetrics) RecordTransaction ¶ added in v1.5.4
func (m *SeataMetrics) RecordTransaction(status string)
RecordTransaction records a transaction completion.
func (*SeataMetrics) RecordTransactionDuration ¶ added in v1.5.4
func (m *SeataMetrics) RecordTransactionDuration(status string, duration float64)
RecordTransactionDuration records transaction duration.
func (*SeataMetrics) SetActiveTransactions ¶ added in v1.5.4
func (m *SeataMetrics) SetActiveTransactions(count float64)
SetActiveTransactions sets the number of active transactions.
func (*SeataMetrics) SetBranchTransactions ¶ added in v1.5.4
func (m *SeataMetrics) SetBranchTransactions(count float64)
SetBranchTransactions sets the number of branch transactions.
type TxSeataClient ¶
type TxSeataClient struct {
*plugins.BasePlugin
// contains filtered or unexported fields
}
TxSeataClient is the Lynx plugin that manages the Seata distributed transaction client.
func GetPlugin ¶ added in v1.5.4
func GetPlugin() *TxSeataClient
GetPlugin obtains the TxSeataClient plugin instance from the application's plugin manager.
func NewTxSeataClient ¶
func NewTxSeataClient() *TxSeataClient
NewTxSeataClient creates a new Seata plugin instance.
func (*TxSeataClient) CheckHealth ¶ added in v1.5.4
func (t *TxSeataClient) CheckHealth() error
CheckHealth performs a health check of the Seata client. When disabled, returns nil. When enabled, verifies the plugin is in a valid state.
func (*TxSeataClient) CleanupTasks ¶
func (t *TxSeataClient) CleanupTasks() error
CleanupTasks performs cleanup during plugin shutdown. Seata-go does not expose a public shutdown API; connections will be released when the process exits.
func (*TxSeataClient) Configure ¶ added in v1.5.4
func (t *TxSeataClient) Configure(cfg any) error
Configure updates the plugin configuration. Overrides base to apply *conf.Seata.
func (*TxSeataClient) GetConfig ¶ added in v1.5.4
func (t *TxSeataClient) GetConfig() *conf.Seata
GetConfig returns the Seata configuration.
func (*TxSeataClient) GetConfigFilePath ¶ added in v1.5.4
func (t *TxSeataClient) GetConfigFilePath() string
GetConfigFilePath returns the Seata configuration file path.
func (*TxSeataClient) InitializeContext ¶ added in v1.6.1
func (*TxSeataClient) InitializeResources ¶
func (t *TxSeataClient) InitializeResources(rt plugins.Runtime) error
InitializeResources loads and initializes the Seata plugin configuration.
func (*TxSeataClient) IsContextAware ¶ added in v1.6.1
func (t *TxSeataClient) IsContextAware() bool
func (*TxSeataClient) IsEnabled ¶ added in v1.5.4
func (t *TxSeataClient) IsEnabled() bool
IsEnabled returns whether the Seata plugin is enabled.
func (*TxSeataClient) PluginProtocol ¶ added in v1.6.1
func (t *TxSeataClient) PluginProtocol() plugins.PluginProtocol
func (*TxSeataClient) StartContext ¶ added in v1.6.1
func (*TxSeataClient) StartupTasks ¶
func (t *TxSeataClient) StartupTasks() error
StartupTasks initializes the Seata client when enabled.
func (*TxSeataClient) StopContext ¶ added in v1.6.1
func (*TxSeataClient) WithGlobalTx ¶ added in v1.5.4
func (t *TxSeataClient) WithGlobalTx(ctx context.Context, name string, timeout time.Duration, business func(context.Context) error) error
WithGlobalTx executes the given business function within a global transaction. It wraps seata-go's tm.WithGlobalTx with sensible defaults.