reslover

package
v0.0.74 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2022 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	Reslover_ResloverType_name = map[int32]string{
		0: "reslover_type_dns",
		1: "reslover_type_consul",
	}
	Reslover_ResloverType_value = map[string]int32{
		"reslover_type_dns":    0,
		"reslover_type_consul": 1,
	}
)

Enum value maps for Reslover_ResloverType.

View Source
var (
	Reslover_LoadBalanceMode_name = map[int32]string{
		0: "load_balance_mode_random",
		1: "load_balance_mode_consist",
	}
	Reslover_LoadBalanceMode_value = map[string]int32{
		"load_balance_mode_random":  0,
		"load_balance_mode_consist": 1,
	}
)

Enum value maps for Reslover_LoadBalanceMode.

View Source
var File_pkg_reslover_reslover_proto protoreflect.FileDescriptor

Functions

This section is empty.

Types

type CompletedConfig

type CompletedConfig struct {
	// contains filtered or unexported fields
}

func (CompletedConfig) New

func (c CompletedConfig) New(ctx context.Context) (*ResloverService, error)

type Config

type Config struct {
	Proto Reslover
	// contains filtered or unexported fields
}

func NewConfig

func NewConfig(options ...ConfigOption) *Config

func (*Config) ApplyOptions

func (o *Config) ApplyOptions(options ...ConfigOption) *Config

func (*Config) Complete

func (c *Config) Complete() CompletedConfig

Complete set default ServerRunOptions.

type ConfigOption

type ConfigOption interface {
	// contains filtered or unexported methods
}

A ConfigOption sets options.

func WithViper

func WithViper(v *viper.Viper) ConfigOption

type ConfigOptionFunc

type ConfigOptionFunc func(*Config)

ConfigOptionFunc wraps a function that modifies Client into an implementation of the ConfigOption interface.

type EmptyConfigOption

type EmptyConfigOption struct{}

EmptyConfigOption does not alter the configuration. It can be embedded in another structure to build custom options.

This API is EXPERIMENTAL.

type Reslover

type Reslover struct {
	Enabled         bool                     `protobuf:"varint,1,opt,name=enabled,proto3" json:"enabled,omitempty"`
	ResloverType    Reslover_ResloverType    `` /* 141-byte string literal not displayed */
	LoadBalanceMode Reslover_LoadBalanceMode `` /* 155-byte string literal not displayed */
	ResolveInterval *duration.Duration       `protobuf:"bytes,4,opt,name=resolve_interval,json=resolveInterval,proto3" json:"resolve_interval,omitempty"`
	Domains         []string                 `protobuf:"bytes,5,rep,name=domains,proto3" json:"domains,omitempty"`
	// contains filtered or unexported fields
}

func (*Reslover) Descriptor deprecated

func (*Reslover) Descriptor() ([]byte, []int)

Deprecated: Use Reslover.ProtoReflect.Descriptor instead.

func (*Reslover) GetDomains added in v0.0.71

func (x *Reslover) GetDomains() []string

func (*Reslover) GetEnabled

func (x *Reslover) GetEnabled() bool

func (*Reslover) GetLoadBalanceMode

func (x *Reslover) GetLoadBalanceMode() Reslover_LoadBalanceMode

func (*Reslover) GetResloverType

func (x *Reslover) GetResloverType() Reslover_ResloverType

func (*Reslover) GetResolveInterval

func (x *Reslover) GetResolveInterval() *duration.Duration

func (*Reslover) ProtoMessage

func (*Reslover) ProtoMessage()

func (*Reslover) ProtoReflect

func (x *Reslover) ProtoReflect() protoreflect.Message

func (*Reslover) Reset

func (x *Reslover) Reset()

func (*Reslover) String

func (x *Reslover) String() string

type ResloverOptions

type ResloverOptions struct {
	ResloverType    Reslover_ResloverType
	LoadBalanceMode Reslover_LoadBalanceMode
}

type ResloverQuery

type ResloverQuery struct {
	Domain string

	Opts ResloverOptions
	// contains filtered or unexported fields
}

func NewDefaultResloverQuery

func NewDefaultResloverQuery(domain string) ResloverQuery

NewDefaultResloverQuery, dns reslover, bls consist hash

func (*ResloverQuery) SetDefault

func (r *ResloverQuery) SetDefault()

type ResloverQueryMap

type ResloverQueryMap sync.Map

func (*ResloverQueryMap) Delete

func (m *ResloverQueryMap) Delete(key string)

Delete deletes the value for a key.

func (*ResloverQueryMap) Load

func (m *ResloverQueryMap) Load(key string) (ResloverQuery, bool)

Load returns the value stored in the map for a key, or nil if no value is present. The ok result indicates whether value was found in the map.

func (*ResloverQueryMap) LoadAndDelete

func (m *ResloverQueryMap) LoadAndDelete(key string) (value ResloverQuery, loaded bool)

LoadAndDelete deletes the value for a key, returning the previous value if any. The loaded result reports whether the key was present.

func (*ResloverQueryMap) LoadOrStore

func (m *ResloverQueryMap) LoadOrStore(key string, value ResloverQuery) (ResloverQuery, bool)

LoadOrStore returns the existing value for the key if present. Otherwise, it stores and returns the given value. The loaded result is true if the value was loaded, false if stored.

func (*ResloverQueryMap) Range

func (m *ResloverQueryMap) Range(f func(key string, value ResloverQuery) bool)

Range calls f sequentially for each key and value present in the map. If f returns false, range stops the iteration.

Range does not necessarily correspond to any consistent snapshot of the Map's contents: no key will be visited more than once, but if the value for any key is stored or deleted concurrently, Range may reflect any mapping for that key from any point during the Range call.

Range may be O(N) with the number of elements in the map even if f returns false after a constant number of calls.

func (*ResloverQueryMap) Store

func (m *ResloverQueryMap) Store(key string, value ResloverQuery)

Store sets the value for a key.

type ResloverService

type ResloverService struct {
	// contains filtered or unexported fields
}

func NewDefaultResloverServices added in v0.0.71

func NewDefaultResloverServices(resolverInterval time.Duration, domains ...string) *ResloverService

func NewResloverService

func NewResloverService(resolverInterval time.Duration, services ...ResloverQuery) *ResloverService

func (*ResloverService) AddService

func (srv *ResloverService) AddService(service ResloverQuery) error

func (*ResloverService) AddServices added in v0.0.71

func (srv *ResloverService) AddServices(services ...ResloverQuery) error

func (*ResloverService) PickNode

func (srv *ResloverService) PickNode(name string, consistKey string) (node string, has bool)

func (*ResloverService) QueryServices

func (srv *ResloverService) QueryServices() (err error)

func (*ResloverService) Run

func (srv *ResloverService) Run(ctx context.Context) error

func (*ResloverService) Serve

func (srv *ResloverService) Serve(ctx context.Context) error

func (*ResloverService) Shutdown

func (srv *ResloverService) Shutdown()

type Reslover_LoadBalanceMode

type Reslover_LoadBalanceMode int32
const (
	Reslover_load_balance_mode_random  Reslover_LoadBalanceMode = 0
	Reslover_load_balance_mode_consist Reslover_LoadBalanceMode = 1
)

func (Reslover_LoadBalanceMode) Descriptor

func (Reslover_LoadBalanceMode) Enum

func (Reslover_LoadBalanceMode) EnumDescriptor deprecated

func (Reslover_LoadBalanceMode) EnumDescriptor() ([]byte, []int)

Deprecated: Use Reslover_LoadBalanceMode.Descriptor instead.

func (Reslover_LoadBalanceMode) Number

func (Reslover_LoadBalanceMode) String

func (x Reslover_LoadBalanceMode) String() string

func (Reslover_LoadBalanceMode) Type

type Reslover_ResloverType

type Reslover_ResloverType int32
const (
	Reslover_reslover_type_dns    Reslover_ResloverType = 0
	Reslover_reslover_type_consul Reslover_ResloverType = 1
)

func (Reslover_ResloverType) Descriptor

func (Reslover_ResloverType) Enum

func (Reslover_ResloverType) EnumDescriptor deprecated

func (Reslover_ResloverType) EnumDescriptor() ([]byte, []int)

Deprecated: Use Reslover_ResloverType.Descriptor instead.

func (Reslover_ResloverType) Number

func (Reslover_ResloverType) String

func (x Reslover_ResloverType) String() string

func (Reslover_ResloverType) Type

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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