circuitbreaker

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: Aug 4, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CircuitBreakerHealthHandler

func CircuitBreakerHealthHandler(cbm *CircuitBreakerManager) gin.HandlerFunc

CircuitBreakerHealthHandler handler para verificar el estado del circuit breaker

func CircuitBreakerMiddleware

func CircuitBreakerMiddleware(cb *CircuitBreaker) gin.HandlerFunc

CircuitBreakerMiddleware middleware que implementa circuit breaker

func MultiCircuitBreakerMiddleware

func MultiCircuitBreakerMiddleware(cbm *CircuitBreakerManager, circuitBreakerName string) gin.HandlerFunc

MultiCircuitBreakerMiddleware middleware que usa el manager

Types

type CircuitBreaker

type CircuitBreaker struct {
	// contains filtered or unexported fields
}

CircuitBreaker implementa el patrón circuit breaker

func NewCircuitBreaker

func NewCircuitBreaker(config *CircuitBreakerConfig, logger *logrus.Logger) *CircuitBreaker

NewCircuitBreaker crea un nuevo circuit breaker

func (*CircuitBreaker) ForceOpen

func (cb *CircuitBreaker) ForceOpen()

ForceOpen fuerza el circuit breaker al estado abierto

func (*CircuitBreaker) GetStats

func (cb *CircuitBreaker) GetStats() map[string]interface{}

GetStats retorna estadísticas del circuit breaker

func (*CircuitBreaker) Reset

func (cb *CircuitBreaker) Reset()

Reset resetea el circuit breaker al estado inicial

type CircuitBreakerConfig

type CircuitBreakerConfig struct {
	// Failure threshold - número de fallos consecutivos para abrir el circuito
	FailureThreshold int

	// Recovery timeout - tiempo en estado abierto antes de intentar recovery
	RecoveryTimeout time.Duration

	// Recovery threshold - número de requests exitosas para cerrar el circuito
	RecoveryThreshold int

	// Request timeout - timeout individual para requests
	RequestTimeout time.Duration

	// Status codes que se consideran fallos
	FailureStatusCodes []int

	// Paths que deben ser protegidos por el circuit breaker
	ProtectedPaths []string

	// Métodos HTTP que deben ser protegidos
	ProtectedMethods []string

	// Callback para eventos del circuit breaker
	OnStateChange func(from, to CircuitBreakerState)
}

CircuitBreakerConfig configuración del circuit breaker

func DefaultCircuitBreakerConfig

func DefaultCircuitBreakerConfig() *CircuitBreakerConfig

DefaultCircuitBreakerConfig retorna configuración por defecto

type CircuitBreakerManager

type CircuitBreakerManager struct {
	// contains filtered or unexported fields
}

CircuitBreakerManager maneja múltiples circuit breakers

func NewCircuitBreakerManager

func NewCircuitBreakerManager(logger *logrus.Logger) *CircuitBreakerManager

NewCircuitBreakerManager crea un nuevo manager

func (*CircuitBreakerManager) AddCircuitBreaker

func (cbm *CircuitBreakerManager) AddCircuitBreaker(name string, config *CircuitBreakerConfig) *CircuitBreaker

AddCircuitBreaker añade un circuit breaker

func (*CircuitBreakerManager) GetAllStats

func (cbm *CircuitBreakerManager) GetAllStats() map[string]interface{}

GetAllStats obtiene estadísticas de todos los circuit breakers

func (*CircuitBreakerManager) GetCircuitBreaker

func (cbm *CircuitBreakerManager) GetCircuitBreaker(name string) *CircuitBreaker

GetCircuitBreaker obtiene un circuit breaker por nombre

func (*CircuitBreakerManager) HealthCheck

func (cbm *CircuitBreakerManager) HealthCheck() map[string]string

HealthCheck verifica el estado de todos los circuit breakers

type CircuitBreakerState

type CircuitBreakerState int

CircuitBreakerState representa el estado del circuit breaker

const (
	StateClosed CircuitBreakerState = iota
	StateOpen
	StateHalfOpen
)

func (CircuitBreakerState) String

func (s CircuitBreakerState) String() string

Jump to

Keyboard shortcuts

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