Documentation
¶
Index ¶
- Constants
- Variables
- type CircuitBreaker
- func (cb *CircuitBreaker) ChangeConfig(config *CircuitBreakerConfig)
- func (cb *CircuitBreaker) Do(ctx context.Context, run runFunc, fallback fallbackFunc) error
- func (cb *CircuitBreaker) GetHalfOpenProbeSent() bool
- func (cb *CircuitBreaker) Hit(nowMs int64, isProbe bool, isFailureHit bool)
- func (cb *CircuitBreaker) SetHalfOpenProbeSent(halfOpenProbeSent bool)
- func (cb *CircuitBreaker) Status() int32
- type CircuitBreakerConfig
- func (c *CircuitBreakerConfig) SetCellIntervalMs(cellIntervalMs int64) *CircuitBreakerConfig
- func (c *CircuitBreakerConfig) SetFailureNum(failureNum int64) *CircuitBreakerConfig
- func (c *CircuitBreakerConfig) SetFailureRateThreshold(failureRateThreshold int64) *CircuitBreakerConfig
- func (c *CircuitBreakerConfig) SetForceOpen(forceOpen bool) *CircuitBreakerConfig
- func (c *CircuitBreakerConfig) SetMinQPS(minQPS int64) *CircuitBreakerConfig
- func (c *CircuitBreakerConfig) SetOpenStatusDurationMs(OpenStatusDurationMs int64) *CircuitBreakerConfig
- func (c *CircuitBreakerConfig) SetSize(size int64) *CircuitBreakerConfig
Constants ¶
View Source
const ( CircuitBreakerStatusClosed = int32(0) CircuitBreakerStatusOpen = int32(1) CircuitBreakerStatusHalfOpen = int32(2) CircuitBreakerStatusForceOpen = int32(3) )
View Source
const ( TotalHit = "total" FailureHit = "failure" )
Variables ¶
View Source
var ErrCircuitBreak error = errors.New("circuit breaker triggered")
Functions ¶
This section is empty.
Types ¶
type CircuitBreaker ¶
type CircuitBreaker struct {
// contains filtered or unexported fields
}
func NewCircuitBreaker ¶
func NewCircuitBreaker(config *CircuitBreakerConfig) *CircuitBreaker
func (*CircuitBreaker) ChangeConfig ¶
func (cb *CircuitBreaker) ChangeConfig(config *CircuitBreakerConfig)
func (*CircuitBreaker) Do ¶
func (cb *CircuitBreaker) Do(ctx context.Context, run runFunc, fallback fallbackFunc) error
func (*CircuitBreaker) GetHalfOpenProbeSent ¶
func (cb *CircuitBreaker) GetHalfOpenProbeSent() bool
func (*CircuitBreaker) Hit ¶
func (cb *CircuitBreaker) Hit(nowMs int64, isProbe bool, isFailureHit bool)
根据请求的成败,驱动 CircuitBreaker 状态迁移。
func (*CircuitBreaker) SetHalfOpenProbeSent ¶
func (cb *CircuitBreaker) SetHalfOpenProbeSent(halfOpenProbeSent bool)
func (*CircuitBreaker) Status ¶
func (cb *CircuitBreaker) Status() int32
type CircuitBreakerConfig ¶
type CircuitBreakerConfig struct { OpenStatusDurationMs int64 // contains filtered or unexported fields }
func NewCircuitBreakerConfig ¶
func NewCircuitBreakerConfig() *CircuitBreakerConfig
func (*CircuitBreakerConfig) SetCellIntervalMs ¶
func (c *CircuitBreakerConfig) SetCellIntervalMs(cellIntervalMs int64) *CircuitBreakerConfig
func (*CircuitBreakerConfig) SetFailureNum ¶
func (c *CircuitBreakerConfig) SetFailureNum(failureNum int64) *CircuitBreakerConfig
func (*CircuitBreakerConfig) SetFailureRateThreshold ¶
func (c *CircuitBreakerConfig) SetFailureRateThreshold(failureRateThreshold int64) *CircuitBreakerConfig
func (*CircuitBreakerConfig) SetForceOpen ¶
func (c *CircuitBreakerConfig) SetForceOpen(forceOpen bool) *CircuitBreakerConfig
func (*CircuitBreakerConfig) SetMinQPS ¶
func (c *CircuitBreakerConfig) SetMinQPS(minQPS int64) *CircuitBreakerConfig
func (*CircuitBreakerConfig) SetOpenStatusDurationMs ¶
func (c *CircuitBreakerConfig) SetOpenStatusDurationMs(OpenStatusDurationMs int64) *CircuitBreakerConfig
func (*CircuitBreakerConfig) SetSize ¶
func (c *CircuitBreakerConfig) SetSize(size int64) *CircuitBreakerConfig
Click to show internal directories.
Click to hide internal directories.