Documentation
¶
Index ¶
- type Factor
- type FactorBasedBalance
- func (fbb *FactorBasedBalance) BackendToRoute(backends []policy.BackendCtx) policy.BackendCtx
- func (fbb *FactorBasedBalance) BackendsToBalance(backends []policy.BackendCtx) (from, to policy.BackendCtx, balanceCount float64, reason string, ...)
- func (fbb *FactorBasedBalance) Close()
- func (fbb *FactorBasedBalance) Init(cfg *config.Config)
- func (fbb *FactorBasedBalance) SetConfig(cfg *config.Config)
- type FactorCPU
- type FactorConnCount
- func (fcc *FactorConnCount) BalanceCount(from, to scoredBackend) float64
- func (fcc *FactorConnCount) Close()
- func (fcc *FactorConnCount) Name() string
- func (fcc *FactorConnCount) ScoreBitNum() int
- func (fcc *FactorConnCount) SetConfig(cfg *config.Config)
- func (fcc *FactorConnCount) UpdateScore(backends []scoredBackend)
- type FactorHealth
- type FactorLabel
- type FactorLocation
- func (fl *FactorLocation) BalanceCount(from, to scoredBackend) float64
- func (fl *FactorLocation) Close()
- func (fl *FactorLocation) Name() string
- func (fl *FactorLocation) ScoreBitNum() int
- func (fl *FactorLocation) SetConfig(cfg *config.Config)
- func (fl *FactorLocation) UpdateScore(backends []scoredBackend)
- type FactorMemory
- type FactorStatus
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Factor ¶
type Factor interface {
// Name returns the name of the factor.
Name() string
// UpdateScore updates the score of each backend.
UpdateScore(backends []scoredBackend)
// ScoreBitNum returns the bit number of the score.
ScoreBitNum() int
// BalanceCount returns the count of connections to balance per second.
// 0 indicates the factor is already balanced.
BalanceCount(from, to scoredBackend) float64
SetConfig(cfg *config.Config)
Close()
}
type FactorBasedBalance ¶
type FactorBasedBalance struct {
// contains filtered or unexported fields
}
FactorBasedBalance is the default balance policy. It's not concurrency-safe for now.
func NewFactorBasedBalance ¶
func NewFactorBasedBalance(lg *zap.Logger, mr metricsreader.MetricsReader) *FactorBasedBalance
func (*FactorBasedBalance) BackendToRoute ¶
func (fbb *FactorBasedBalance) BackendToRoute(backends []policy.BackendCtx) policy.BackendCtx
BackendToRoute returns the idlest backend.
func (*FactorBasedBalance) BackendsToBalance ¶
func (fbb *FactorBasedBalance) BackendsToBalance(backends []policy.BackendCtx) (from, to policy.BackendCtx, balanceCount float64, reason string, logFields []zap.Field)
BackendsToBalance returns the busiest/unhealthy backend and the idlest backend. balanceCount: the count of connections to migrate in this round. 0 indicates no need to balance. reason: the debug information to be logged.
func (*FactorBasedBalance) Close ¶
func (fbb *FactorBasedBalance) Close()
func (*FactorBasedBalance) Init ¶
func (fbb *FactorBasedBalance) Init(cfg *config.Config)
Init creates factors at the first time. TODO: create factors according to config and update policy when config changes.
func (*FactorBasedBalance) SetConfig ¶
func (fbb *FactorBasedBalance) SetConfig(cfg *config.Config)
type FactorCPU ¶
type FactorCPU struct {
// contains filtered or unexported fields
}
func NewFactorCPU ¶
func NewFactorCPU(mr metricsreader.MetricsReader) *FactorCPU
func (*FactorCPU) BalanceCount ¶
func (*FactorCPU) ScoreBitNum ¶
func (*FactorCPU) UpdateScore ¶
func (fc *FactorCPU) UpdateScore(backends []scoredBackend)
type FactorConnCount ¶
type FactorConnCount struct {
// contains filtered or unexported fields
}
func NewFactorConnCount ¶
func NewFactorConnCount() *FactorConnCount
func (*FactorConnCount) BalanceCount ¶
func (fcc *FactorConnCount) BalanceCount(from, to scoredBackend) float64
func (*FactorConnCount) Close ¶
func (fcc *FactorConnCount) Close()
func (*FactorConnCount) Name ¶
func (fcc *FactorConnCount) Name() string
func (*FactorConnCount) ScoreBitNum ¶
func (fcc *FactorConnCount) ScoreBitNum() int
func (*FactorConnCount) SetConfig ¶
func (fcc *FactorConnCount) SetConfig(cfg *config.Config)
func (*FactorConnCount) UpdateScore ¶
func (fcc *FactorConnCount) UpdateScore(backends []scoredBackend)
type FactorHealth ¶
type FactorHealth struct {
// contains filtered or unexported fields
}
func NewFactorHealth ¶
func NewFactorHealth(mr metricsreader.MetricsReader) *FactorHealth
func (*FactorHealth) BalanceCount ¶
func (fh *FactorHealth) BalanceCount(from, to scoredBackend) float64
func (*FactorHealth) Close ¶
func (fh *FactorHealth) Close()
func (*FactorHealth) Name ¶
func (fh *FactorHealth) Name() string
func (*FactorHealth) ScoreBitNum ¶
func (fh *FactorHealth) ScoreBitNum() int
func (*FactorHealth) SetConfig ¶
func (fh *FactorHealth) SetConfig(cfg *config.Config)
func (*FactorHealth) UpdateScore ¶
func (fh *FactorHealth) UpdateScore(backends []scoredBackend)
type FactorLabel ¶
type FactorLabel struct {
// contains filtered or unexported fields
}
func NewFactorLabel ¶
func NewFactorLabel() *FactorLabel
func (*FactorLabel) BalanceCount ¶
func (fl *FactorLabel) BalanceCount(from, to scoredBackend) float64
func (*FactorLabel) Close ¶
func (fl *FactorLabel) Close()
func (*FactorLabel) Name ¶
func (fl *FactorLabel) Name() string
func (*FactorLabel) ScoreBitNum ¶
func (fl *FactorLabel) ScoreBitNum() int
func (*FactorLabel) SetConfig ¶
func (fl *FactorLabel) SetConfig(cfg *config.Config)
func (*FactorLabel) UpdateScore ¶
func (fl *FactorLabel) UpdateScore(backends []scoredBackend)
type FactorLocation ¶
type FactorLocation struct {
// contains filtered or unexported fields
}
func NewFactorLocation ¶
func NewFactorLocation() *FactorLocation
func (*FactorLocation) BalanceCount ¶
func (fl *FactorLocation) BalanceCount(from, to scoredBackend) float64
func (*FactorLocation) Close ¶
func (fl *FactorLocation) Close()
func (*FactorLocation) Name ¶
func (fl *FactorLocation) Name() string
func (*FactorLocation) ScoreBitNum ¶
func (fl *FactorLocation) ScoreBitNum() int
func (*FactorLocation) SetConfig ¶
func (fl *FactorLocation) SetConfig(cfg *config.Config)
func (*FactorLocation) UpdateScore ¶
func (fl *FactorLocation) UpdateScore(backends []scoredBackend)
type FactorMemory ¶
type FactorMemory struct {
// contains filtered or unexported fields
}
func NewFactorMemory ¶
func NewFactorMemory(mr metricsreader.MetricsReader) *FactorMemory
func (*FactorMemory) BalanceCount ¶
func (fm *FactorMemory) BalanceCount(from, to scoredBackend) float64
func (*FactorMemory) Close ¶
func (fm *FactorMemory) Close()
func (*FactorMemory) Name ¶
func (fm *FactorMemory) Name() string
func (*FactorMemory) ScoreBitNum ¶
func (fm *FactorMemory) ScoreBitNum() int
func (*FactorMemory) SetConfig ¶
func (fm *FactorMemory) SetConfig(cfg *config.Config)
func (*FactorMemory) UpdateScore ¶
func (fm *FactorMemory) UpdateScore(backends []scoredBackend)
type FactorStatus ¶
type FactorStatus struct {
// contains filtered or unexported fields
}
func NewFactorStatus ¶
func NewFactorStatus() *FactorStatus
func (*FactorStatus) BalanceCount ¶
func (fs *FactorStatus) BalanceCount(from, to scoredBackend) float64
func (*FactorStatus) Close ¶
func (fs *FactorStatus) Close()
func (*FactorStatus) Name ¶
func (fs *FactorStatus) Name() string
func (*FactorStatus) ScoreBitNum ¶
func (fs *FactorStatus) ScoreBitNum() int
func (*FactorStatus) SetConfig ¶
func (fs *FactorStatus) SetConfig(cfg *config.Config)
func (*FactorStatus) UpdateScore ¶
func (fs *FactorStatus) UpdateScore(backends []scoredBackend)
Click to show internal directories.
Click to hide internal directories.