random

package
v0.1.0 Latest Latest
Warning

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

Go to latest
Published: May 20, 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