Help us shape the future of Go! Take the 2026 Go Developer Survey

random

package
v0.3.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 3, 2026 License: MIT Imports: 7 Imported by: 0

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

Boot is a no-op for random selector provider.

Boot 随机选择器 Provider 无启动逻辑。

func (*Provider) DependsOn

func (p *Provider) DependsOn() []string

DependsOn returns the keys this provider depends on. Random selector has no dependencies.

DependsOn 返回该 provider 依赖的 key。 Random selector 无依赖。

func (*Provider) IsDefer

func (p *Provider) IsDefer() bool

IsDefer returns true, selector can be deferred until first use.

IsDefer 返回 true,选择器可延迟初始化直到首次使用。

func (*Provider) Name

func (p *Provider) Name() string

Name returns the provider name "selector.random".

Name 返回 Provider 名称 "selector.random"。

func (*Provider) Provides

func (p *Provider) Provides() []string

Provides returns the selector contract keys.

Provides 返回选择器契约键列表。

func (*Provider) Register

func (p *Provider) Register(c runtimecontract.Container) error

Register binds the random selector factory to the container.

Register 将随机选择器工厂绑定到容器。

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

Select randomly picks an instance from available healthy instances. Core logic: Filter healthy instances, apply custom filters, then pick randomly.

Select 从可用的健康实例中随机选择一个。 核心逻辑:过滤健康实例,应用自定义过滤器,然后随机选择。

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL