ringhash

package
v1.5.4 Latest Latest
Warning

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

Go to latest
Published: Oct 26, 2023 License: Apache-2.0, BSD-2-Clause, BSD-3-Clause, + 3 more Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DefaultVnodeCount 默认虚拟节点数
	DefaultVnodeCount = 10
)

Variables

This section is empty.

Functions

func IPToUInt32

func IPToUInt32(ip string) uint32

IPToUInt32 ip转uint32

Types

type Config

type Config struct {
	HashFunction string `yaml:"hashFunction" json:"hashFunction"`
	VnodeCount   int    `yaml:"vnodeCount" json:"vnodeCount"`
}

Config 一致性hash配置对象

func (*Config) SetDefault

func (c *Config) SetDefault()

SetDefault 设置一致性hash默认值

func (*Config) Verify

func (c *Config) Verify() error

Verify 检验一致性hash配置

type ContinuumSelector

type ContinuumSelector struct {
	model.SelectorBase
	// contains filtered or unexported fields
}

ContinuumSelector 一致性hash环

func NewContinuum

func NewContinuum(
	instanceSet *model.InstanceSet, vnodeCount int, hashFunc hash.HashFuncWithSeed, id int32) (*ContinuumSelector, error)

NewContinuum 创建hash环

func (*ContinuumSelector) Select

func (c *ContinuumSelector) Select(value interface{}) (int, *model.ReplicateNodes, error)

Select 选择实例下标

func (ContinuumSelector) String

func (c ContinuumSelector) String() string

String 打印hash环

type KetamaLoadBalancer

type KetamaLoadBalancer struct {
	*plugin.PluginBase
	// contains filtered or unexported fields
}

KetamaLoadBalancer ketama算法的一致性hash负载均衡器

func (*KetamaLoadBalancer) ChooseInstance

func (k *KetamaLoadBalancer) ChooseInstance(criteria *loadbalancer.Criteria,
	inputInstances model.ServiceInstances) (model.Instance, error)

ChooseInstance 获取单个服务实例

func (*KetamaLoadBalancer) Destroy

func (k *KetamaLoadBalancer) Destroy() error

Destroy 销毁插件,可用于释放资源

func (*KetamaLoadBalancer) Init

Init 初始化插件

func (*KetamaLoadBalancer) Name

func (k *KetamaLoadBalancer) Name() string

Name 插件名,一个类型下插件名唯一

func (*KetamaLoadBalancer) Type

func (k *KetamaLoadBalancer) Type() common.Type

Type 插件类型

type L5CSTLoadBalancer

type L5CSTLoadBalancer struct {
	*plugin.PluginBase
}

L5CSTLoadBalancer l5一致性算法的hash负载均衡器

func (*L5CSTLoadBalancer) ChooseInstance

func (l *L5CSTLoadBalancer) ChooseInstance(criteria *loadbalancer.Criteria,
	inputInstances model.ServiceInstances) (model.Instance, error)

ChooseInstance 获取单个服务实例

func (*L5CSTLoadBalancer) Init

func (l *L5CSTLoadBalancer) Init(ctx *plugin.InitContext) error

Init 初始化插件

func (*L5CSTLoadBalancer) Name

func (l *L5CSTLoadBalancer) Name() string

Name 插件名,一个类型下插件名唯一

func (*L5CSTLoadBalancer) Type

func (l *L5CSTLoadBalancer) Type() common.Type

Type 插件类型

type L5ContinuumSelector

type L5ContinuumSelector struct {
	model.SelectorBase
	// contains filtered or unexported fields
}

L5ContinuumSelector 一致性hash环

func NewL5Continuum

func NewL5Continuum(
	instanceSet *model.InstanceSet, id int32) (*L5ContinuumSelector, error)

NewL5Continuum 创建hash环

func (*L5ContinuumSelector) Select

func (c *L5ContinuumSelector) Select(value interface{}) (int, *model.ReplicateNodes, error)

Select 选择实例下标

Jump to

Keyboard shortcuts

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