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 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 GreyBalanceHandler
- type GreyHandler
- type GreyNode
- func (g *GreyNode) Addr() string
- func (g *GreyNode) Down()
- func (g *GreyNode) GetAttrByName(name string) (string, bool)
- func (g *GreyNode) GetAttrs() eocontext.Attrs
- func (g *GreyNode) ID() string
- func (g *GreyNode) IP() string
- func (g *GreyNode) Leave()
- func (g *GreyNode) Port() int
- func (g *GreyNode) Status() eocontext.NodeStatus
- func (g *GreyNode) Up()
- type Matching
- type Robin
- type Rule
- type Training
- type Weighted
Constants ¶
View Source
const Name = "strategy-grey"
Variables ¶
This section is empty.
Functions ¶
func DoStrategy ¶ added in v0.9.0
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 GreyBalanceHandler ¶
type GreyBalanceHandler struct {
// contains filtered or unexported fields
}
type GreyHandler ¶
type GreyHandler struct {
// contains filtered or unexported fields
}
func NewGreyHandler ¶
func NewGreyHandler(conf *Config) (*GreyHandler, error)
type GreyNode ¶
type GreyNode struct {
// contains filtered or unexported fields
}
func (*GreyNode) Status ¶
func (g *GreyNode) Status() eocontext.NodeStatus
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.