Documentation
¶
Index ¶
- Constants
- Variables
- func AllowRequest(serverURL string) bool
- func GetCircuitBreakerState(serverURL string) string
- func GetCircuitBreakerStats() map[string]any
- func InitCircuitBreakers(servers []string, cfg CircuitBreakerConf)
- func ReportFailure(serverURL string)
- func ReportSuccess(serverURL string)
- type CircuitBreaker
- type CircuitBreakerConf
- type State
Constants ¶
View Source
const Version = "0.1.0"
Variables ¶
View Source
var (
CircuitBreakers map[string]*CircuitBreaker
)
Functions ¶
func AllowRequest ¶
AllowRequest проверяет, разрешен ли запрос к серверу
func GetCircuitBreakerState ¶
GetCircuitBreakerstate возвращает текстовое состояние Circuit Breaker
func GetCircuitBreakerStats ¶
GetCircuitBreakerStats возвращает статистику всех Circuit Breakers
func InitCircuitBreakers ¶
func InitCircuitBreakers(servers []string, cfg CircuitBreakerConf)
InitCircuitBreakers инициализирует Circuit Breakers для серверов
Types ¶
type CircuitBreaker ¶
type CircuitBreaker struct {
// contains filtered or unexported fields
}
CircuitBreaker реализует паттерн Circuit Breaker
func GetCircuitBreaker ¶
func GetCircuitBreaker(serverURL string) *CircuitBreaker
GetCircuitBreaker возвращает Circuit Breaker для сервера
func New ¶
func New(name string, config CircuitBreakerConf) *CircuitBreaker
New создает новый Circuit Breaker
func (*CircuitBreaker) Allow ¶
func (cb *CircuitBreaker) Allow() bool
Allow проверяет, разрешено ли выполнение запроса
func (*CircuitBreaker) Failure ¶
func (cb *CircuitBreaker) Failure()
Failure отмечает неудачное выполнение запроса
func (*CircuitBreaker) State ¶
func (cb *CircuitBreaker) State() State
State возвращает текущее состояние
func (*CircuitBreaker) Stats ¶
func (cb *CircuitBreaker) Stats() map[string]any
Stats возвращает статистику
func (*CircuitBreaker) Success ¶
func (cb *CircuitBreaker) Success()
Success отмечает успешное выполнение запроса
type CircuitBreakerConf ¶
type CircuitBreakerConf struct {
FailureThreshold int `yaml:"failure_threshold"`
RecoveryTimeout time.Duration `yaml:"recovery_timeout"`
SuccessThreshold int `yaml:"success_threshold"`
HalfOpenPrc int `yaml:"half_open_prc"` // Процент пропускаемых запросов
}
Структура для конфигурации Circuit Breaker
Click to show internal directories.
Click to hide internal directories.