Documentation
¶
Index ¶
- Constants
- Variables
- func GenMemberAddrs(ms []Member) (addrs []string)
- func GenNodesFile(file string, ms []Member) error
- type DynamicRegistry
- func (r *DynamicRegistry) Claim() (err error)
- func (r *DynamicRegistry) FinalizeClaim(address string, nodename string, lock *redsync.Mutex) (err error)
- func (r *DynamicRegistry) GenerateNodeAddress() (address string, err error)
- func (r *DynamicRegistry) GenerateNodeName() (name string, err error)
- func (r *DynamicRegistry) GetRegistry() (inventory []*Member, err error)
- func (r *DynamicRegistry) Init(cfg *config.Cluster, nodesFile string) (err error)
- func (r *DynamicRegistry) Lock() (mutex *redsync.Mutex, err error)
- func (r *DynamicRegistry) RemoveNode() (err error)
- func (r *DynamicRegistry) SaveNode() (err error)
- func (r *DynamicRegistry) StartEventLoop()
- func (r *DynamicRegistry) Stop() (err error)
- func (r *DynamicRegistry) Unlock(mutex *redsync.Mutex) (err error)
- type Event
- type Member
- type Node
Constants ¶
View Source
const ( AddressWayPrivateIP uint = iota AddressWayPublicIP AddressWayHostname )
View Source
const ( NodeNameWayPrivateIP uint = iota NodeNameWayPublicIP NodeNameWayHostname NodeNameWayUUID )
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") ErrInvalidAddress = errors.New("invalid or missing address") ErrInvalidNodeName = errors.New("invalid or missing node name") )
Functions ¶
func GenMemberAddrs ¶
func GenNodesFile ¶
Types ¶
type DynamicRegistry ¶ added in v1.0.1
type DynamicRegistry struct {
NodeKey string
NodesFile 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 (*DynamicRegistry) GenerateNodeAddress ¶ added in v1.1.0
func (r *DynamicRegistry) GenerateNodeAddress() (address string, err error)
func (*DynamicRegistry) GenerateNodeName ¶ added in v1.1.0
func (r *DynamicRegistry) GenerateNodeName() (name string, err error)
func (*DynamicRegistry) GetRegistry ¶ added in v1.1.0
func (r *DynamicRegistry) GetRegistry() (inventory []*Member, err error)
func (*DynamicRegistry) Init ¶ added in v1.0.1
func (r *DynamicRegistry) Init(cfg *config.Cluster, nodesFile string) (err error)
func (*DynamicRegistry) Lock ¶ added in v1.1.0
func (r *DynamicRegistry) Lock() (mutex *redsync.Mutex, 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 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 ¶
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
}
Click to show internal directories.
Click to hide internal directories.