Documentation
¶
Index ¶
- func CircuitBreakerHealthHandler(cbm *CircuitBreakerManager) gin.HandlerFunc
- func CircuitBreakerMiddleware(cb *CircuitBreaker) gin.HandlerFunc
- func MultiCircuitBreakerMiddleware(cbm *CircuitBreakerManager, circuitBreakerName string) gin.HandlerFunc
- type CircuitBreaker
- type CircuitBreakerConfig
- type CircuitBreakerManager
- func (cbm *CircuitBreakerManager) AddCircuitBreaker(name string, config *CircuitBreakerConfig) *CircuitBreaker
- func (cbm *CircuitBreakerManager) GetAllStats() map[string]interface{}
- func (cbm *CircuitBreakerManager) GetCircuitBreaker(name string) *CircuitBreaker
- func (cbm *CircuitBreakerManager) HealthCheck() map[string]string
- type CircuitBreakerState
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