discovery

package
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Dec 23, 2025 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EventJoin = iota
	EventLeave
	EventFailed
	EventUpdate
	EventReap
)
View Source
const (
	TagRaftPort = "raft-port"
	TagGrpcPort = "grpc-port"
)

Variables

View Source
var (
	ErrSerfRequired        = errors.New("discovery-way must be 0 for dynamic membership (serf)")
	ErrKeyExpMustBeGreater = errors.New("redis-node-key-exp must be greater than event-loop-interval-sec")
	ErrRedisNotAvail       = errors.New("redis not available")
	ErrInvalidOutboundIP   = errors.New("invalid or missing outbound IP")
)

Functions

func GenMemberAddrs

func GenMemberAddrs(ms []Member) (addrs []string)

func GenNodesFile

func GenNodesFile(file string, ms []Member) error

Types

type DynamicRegistry added in v1.0.1

type DynamicRegistry struct {
	NodeKey string
	// contains filtered or unexported fields
}

func NewDynamicRegistry added in v1.0.1

func NewDynamicRegistry() *DynamicRegistry

func (*DynamicRegistry) Claim added in v1.0.1

func (r *DynamicRegistry) Claim() (err error)

func (*DynamicRegistry) FinalizeClaim added in v1.0.1

func (r *DynamicRegistry) FinalizeClaim(ip string, nodenum int, members []*Member, lock *redsync.Mutex) (err error)

func (*DynamicRegistry) GetInventory added in v1.0.1

func (r *DynamicRegistry) GetInventory() (inventory []*Member, err error)

func (*DynamicRegistry) Init added in v1.0.1

func (r *DynamicRegistry) Init(cfg *config.Cluster, ctx context.Context) (err error)

func (*DynamicRegistry) RemoveNode added in v1.0.1

func (r *DynamicRegistry) RemoveNode() (err error)

func (*DynamicRegistry) SaveNode added in v1.0.1

func (r *DynamicRegistry) SaveNode() (err error)

func (*DynamicRegistry) StartEventLoop added in v1.0.1

func (r *DynamicRegistry) StartEventLoop()

func (*DynamicRegistry) Stop added in v1.0.1

func (r *DynamicRegistry) Stop() (err error)

type Event

type Event struct {
	Member
	Type int
}

type Member

type Member struct {
	Name string            `json:"name"`
	Addr string            `json:"addr"`
	Port int               `json:"port"`
	Tags map[string]string `json:"tags,omitempty"`
}

func ReadMembers

func ReadMembers(file string) []Member

type Node

type Node interface {
	Setup() error
	Stop()
	BindMqttServer(server *mqtt.Server)
	LocalAddr() string
	LocalName() string
	Members() []Member
	EventChan() <-chan *Event
	SendToNode(nodeName string, msg []byte) error
	SendToOthers(msg []byte)
	Stat() map[string]int64
	Join(existing []string) (int, error)
	Leave() error
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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