hystrix - Circuit Breaker
Overview
The hystrix module provides circuit breaker functionality for fault tolerance and graceful degradation. It includes optimized implementations for different use cases.
Types
State
Circuit breaker state.
CircuitBreakerConfig
Configuration for circuit breaker.
Circuit Breaker Types
NewCircuitBreaker()
Create optimized circuit breaker.
Parameters:
c- Configuration options
Returns:
- Circuit breaker instance
Example:
NewFastCircuitBreaker()
Create ultra-lightweight circuit breaker.
Parameters:
failureThreshold- Failure thresholdtimeWindow- Time window
Returns:
- Fast circuit breaker instance
Example:
NewBatchCircuitBreaker()
Create batch processing circuit breaker.
Parameters:
config- Configuration optionsbatchSize- Batch sizebatchTimeout- Batch timeout
Returns:
- Batch circuit breaker instance
Example:
Circuit Breaker Methods
Before()
Check if request is allowed.
Returns:
- true if request is allowed
- false if circuit is open
Example:
After()
Record request result.
Parameters:
success- Whether request succeeded
Example:
Call()
Execute function with circuit breaker protection.
Parameters:
fn- Function to execute
Returns:
- Error from function
- Error if circuit is open
Example:
State()
Get current circuit breaker state.
Returns:
- Current state
Example:
Usage Patterns
Service Call Protection
Batch Processing
State Monitoring
Best Practices
Circuit Breaker Configuration
Error Handling
Related Documentation
- routine - Goroutine management
- wait - Flow control
- API Documentation
- Module Overview