Documentation
¶
Overview ¶
Package random provides random load balancing selector for service discovery. The selector randomly picks an instance from available healthy instances. Eg:
随机负载均衡选择器包,提供服务发现的随机选择算法。 选择器从可用的健康实例中随机选择一个。 Eg:
// 注册 Provider app.Register(random.NewProvider()) // 使用选择器 selector := c.MustMake(discoverycontract.SelectorKey).(discoverycontract.Selector) instance, doneFunc, _ := selector.Select(ctx, instances)
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider struct{}
Provider registers the random selector contract.
Provider 注册随机选择器契约。
func NewProvider ¶
func NewProvider() *Provider
NewProvider creates a new random selector provider instance.
NewProvider 创建新的随机选择器 Provider 实例。
func (*Provider) Boot ¶
func (p *Provider) Boot(c runtimecontract.Container) error
Boot is a no-op for random selector provider.
Boot 随机选择器 Provider 无启动逻辑。
func (*Provider) DependsOn ¶
DependsOn returns the keys this provider depends on. Random selector has no dependencies.
DependsOn 返回该 provider 依赖的 key。 Random selector 无依赖。
func (*Provider) IsDefer ¶
IsDefer returns true, selector can be deferred until first use.
IsDefer 返回 true,选择器可延迟初始化直到首次使用。
func (*Provider) Name ¶
Name returns the provider name "selector.random".
Name 返回 Provider 名称 "selector.random"。
type RandomSelector ¶
type RandomSelector struct {
// contains filtered or unexported fields
}
RandomSelector implements discoverycontract.Selector with random selection.
RandomSelector 使用随机选择实现 discoverycontract.Selector 接口。
func NewRandomSelector ¶
func NewRandomSelector() *RandomSelector
NewRandomSelector creates a new random selector instance.
NewRandomSelector 创建新的随机选择器实例。
func (*RandomSelector) Select ¶
func (s *RandomSelector) Select(ctx context.Context, instances []transportcontract.ServiceInstance, opts ...discoverycontract.SelectOption) ( selected transportcontract.ServiceInstance, done discoverycontract.DoneFunc, err error, )
Select randomly picks an instance from available healthy instances. Core logic: Filter healthy instances, apply custom filters, then pick randomly.
Select 从可用的健康实例中随机选择一个。 核心逻辑:过滤健康实例,应用自定义过滤器,然后随机选择。