Documentation ¶
Index ¶
- Constants
- func Check(conf *Config, workers map[eosc.RequireId]eosc.IWorker) error
- func Create(id, name string, conf *Config, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error)
- func MatchStatusCode(matchStatusCodes string, ctx http_service.IHttpContext) bool
- func NewFactory() eosc.IExtenderDriverFactory
- func Register(register eosc.IExtenderDriverRegister)
- type CircuitBreaker
- func (c *CircuitBreaker) CheckSkill(skill string) bool
- func (c *CircuitBreaker) Destroy()
- func (c *CircuitBreaker) DoFilter(ctx eocontext.EoContext, next eocontext.IChain) (err error)
- func (c *CircuitBreaker) DoHttpFilter(ctx http_service.IHttpContext, next eocontext.IChain) error
- func (c *CircuitBreaker) Reset(v interface{}, workers map[eosc.RequireId]eosc.IWorker) error
- func (c *CircuitBreaker) Start() error
- func (c *CircuitBreaker) Stop() error
- type CircuitBreakerInfo
- type Config
Constants ¶
View Source
const ( BreakerDisable = 0 BreakerEnable = 1 BreakerRecovering = 2 )
View Source
const (
Name = "circuit_breaker"
)
Variables ¶
This section is empty.
Functions ¶
func MatchStatusCode ¶
func MatchStatusCode(matchStatusCodes string, ctx http_service.IHttpContext) bool
匹配接口状态码
func NewFactory ¶
func NewFactory() eosc.IExtenderDriverFactory
func Register ¶
func Register(register eosc.IExtenderDriverRegister)
Types ¶
type CircuitBreaker ¶
type CircuitBreaker struct { drivers.WorkerBase // contains filtered or unexported fields }
func (*CircuitBreaker) CheckSkill ¶
func (c *CircuitBreaker) CheckSkill(skill string) bool
func (*CircuitBreaker) Destroy ¶
func (c *CircuitBreaker) Destroy()
func (*CircuitBreaker) DoHttpFilter ¶ added in v0.8.0
func (c *CircuitBreaker) DoHttpFilter(ctx http_service.IHttpContext, next eocontext.IChain) error
func (*CircuitBreaker) Start ¶
func (c *CircuitBreaker) Start() error
func (*CircuitBreaker) Stop ¶
func (c *CircuitBreaker) Stop() error
type CircuitBreakerInfo ¶
type CircuitBreakerInfo struct { CircuitBreakerState int `json:"circuit_breaker_state"` FailCounts int `json:"fail_counts"` SuccessCounts int `json:"success_counts"` TripTime int64 `json:"trip_time"` StartTime int64 `json:"start_time"` RecoveringSuccessCounts int `json:"recovering_success_counts"` }
func (*CircuitBreakerInfo) ResetCircuitBreakerInfo ¶
func (cb *CircuitBreakerInfo) ResetCircuitBreakerInfo(state int, resetStartTime bool)
重置熔断当前状态信息
type Config ¶
type Config struct { MatchCodes string `json:"match_codes" label:"匹配状态码" description:"多个状态码之间使用英文逗号隔开"` MonitorPeriod int `json:"monitor_period" label:"监控期" minimum:"1" description:"单位:秒,最小值:1"` MinimumRequests int `` /* 132-byte string literal not displayed */ FailurePercent float64 `` /* 129-byte string literal not displayed */ BreakPeriod int64 `json:"break_period" label:"熔断期" minimum:"1" description:"最小值:1"` SuccessCounts int `` /* 166-byte string literal not displayed */ BreakerCode int `json:"breaker_code" label:"熔断状态下返回的响应状态码" minimum:"100" description:"最小值:100"` Headers map[string]string `json:"headers" label:"熔断状态下新增的返回头部值"` Body string `json:"body" label:"熔断状态下的返回响应体"` }
Click to show internal directories.
Click to hide internal directories.