Documentation ¶
Index ¶
- Constants
- func Check(cfg *Config, workers map[eosc.RequireId]eosc.IWorker) error
- func Create(id, name string, v *Config, workers map[eosc.RequireId]eosc.IWorker) (eosc.IWorker, error)
- func DoStrategy(ctx eocontext.EoContext, next eocontext.IChain) error
- func NewGreyApp(old eocontext.BalanceHandler, grey eocontext.BalanceHandler) eocontext.BalanceHandler
- func Register(register eosc.IExtenderDriverRegister)
- type ActuatorSet
- type Config
- type Controller
- func (c *Controller) AllWorkers() []string
- func (c *Controller) Check(cfg interface{}) (profession, name, driver, desc string, err error)
- func (c *Controller) ConfigType() reflect.Type
- func (c *Controller) Del(id string)
- func (c *Controller) Get() interface{}
- func (c *Controller) Mode() eosc.SettingMode
- func (c *Controller) Set(conf interface{}) (err error)
- func (c *Controller) Store(id string)
- type Grey
- type GreyApp
- type GreyHandler
- type GreyMatch
- type IGreyHandler
- type Matching
- type Robin
- type Rule
- type Training
- type Weighted
Constants ¶
View Source
const Name = "strategy-grey"
View Source
const SessionName = "Apinto-Session"
Variables ¶
This section is empty.
Functions ¶
func DoStrategy ¶ added in v0.9.0
func NewGreyApp ¶ added in v0.12.5
func NewGreyApp(old eocontext.BalanceHandler, grey eocontext.BalanceHandler) eocontext.BalanceHandler
Types ¶
type ActuatorSet ¶
type ActuatorSet interface { strategy.IStrategyHandler Set(string, *GreyHandler) Del(id string) }
type Config ¶
type Config struct { Name string `json:"name" skip:"skip"` Description string `json:"description" skip:"skip"` Stop bool `json:"stop" label:"禁用"` Priority int `json:"priority" label:"优先级" description:"1-999"` Filters strategy.FilterConfig `json:"filters" label:"过滤规则"` Rule Rule `json:"grey" label:"灰度规则"` }
type Controller ¶
type Controller struct {
// contains filtered or unexported fields
}
func NewController ¶
func NewController() *Controller
func (*Controller) AllWorkers ¶
func (c *Controller) AllWorkers() []string
func (*Controller) Check ¶
func (c *Controller) Check(cfg interface{}) (profession, name, driver, desc string, err error)
func (*Controller) ConfigType ¶
func (c *Controller) ConfigType() reflect.Type
func (*Controller) Del ¶
func (c *Controller) Del(id string)
func (*Controller) Get ¶
func (c *Controller) Get() interface{}
func (*Controller) Mode ¶
func (c *Controller) Mode() eosc.SettingMode
func (*Controller) Set ¶
func (c *Controller) Set(conf interface{}) (err error)
func (*Controller) Store ¶
func (c *Controller) Store(id string)
type Grey ¶
type Grey struct { drivers.WorkerBase // contains filtered or unexported fields }
func (*Grey) CheckSkill ¶
type GreyApp ¶ added in v0.12.5
type GreyApp struct { eocontext.BalanceHandler // contains filtered or unexported fields }
type GreyHandler ¶
func NewGreyHandler ¶
func NewGreyHandler(conf *Config) (*GreyHandler, error)
func (*GreyHandler) Close ¶ added in v0.12.5
func (g *GreyHandler) Close()
func (*GreyHandler) DoGrey ¶ added in v0.12.5
func (g *GreyHandler) DoGrey(ctx eocontext.EoContext)
func (*GreyHandler) IsStop ¶ added in v0.12.5
func (g *GreyHandler) IsStop() bool
func (*GreyHandler) Nodes ¶ added in v0.12.5
func (g *GreyHandler) Nodes() []eocontext.INode
func (*GreyHandler) Priority ¶ added in v0.12.5
func (g *GreyHandler) Priority() int
func (*GreyHandler) Scheme ¶ added in v0.12.5
func (g *GreyHandler) Scheme() string
func (*GreyHandler) TimeOut ¶ added in v0.12.5
func (g *GreyHandler) TimeOut() time.Duration
type IGreyHandler ¶ added in v0.12.5
type Rule ¶
type Rule struct { KeepSession bool `json:"keep_session" label:"会话保持规则"` Nodes []string `json:"nodes" label:"灰度节点"` Distribution string `json:"distribution" label:"流量分配方式" enum:"percent,match"` // percent match Percent int `json:"percent" label:"灰度节点流量占比" description:"1-9999"` // 灰度的百分比 四位数 Matching []*Matching `json:"matching" label:"高级匹配"` }
Click to show internal directories.
Click to hide internal directories.