Documentation ¶
Index ¶
- Constants
- func Expect(t *testing.T, got, want interface{})
- func GenNodeName() string
- func GenerateUUID4() string
- func GetIP() string
- func InArray(val interface{}, array interface{}) bool
- func NewOptions(opts ...Option) *memberlist.Config
- func Unset(a []string, i int) []string
- type Broadcast
- type Cluster
- func (c *Cluster) BindMqttServer(server *mqtt.Server)
- func (c *Cluster) BootstrapRaft(raftPort int, raftDir string) error
- func (c *Cluster) Broadcast(msg []byte)
- func (c *Cluster) GetNodeByIP(ipAddr net.IP) *memberlist.Node
- func (c *Cluster) Join(members []string) (int, error)
- func (c *Cluster) LocalNode() *memberlist.Node
- func (c *Cluster) Members() []*memberlist.Node
- func (c *Cluster) NumMembers() int
- func (c *Cluster) OnConnect(cl events.Client, pk packets.Packet)
- func (c *Cluster) OnError(cl events.Client, err error)
- func (c *Cluster) OnMessage(cl events.Client, pk packets.Packet) (pkx packets.Packet, err error)
- func (c *Cluster) OnSubscribe(filter string, cl events.Client, qos byte, isFirst bool)
- func (c *Cluster) OnUnsubscribe(filter string, cl events.Client, isLast bool)
- func (c *Cluster) SendToNode(nodename string, msg []byte)
- func (c *Cluster) SendToOthers(msg []byte)
- func (c *Cluster) Stat() map[string]*system.Info
- func (c *Cluster) Stop()
- type Delegate
- func (d *Delegate) BindMqttServer(server *mqtt.Server)
- func (d *Delegate) Broadcast(data []byte)
- func (d *Delegate) GetBroadcasts(overhead, limit int) [][]byte
- func (d *Delegate) InitBroadcasts(list *memberlist.Memberlist)
- func (d *Delegate) LocalState(join bool) []byte
- func (d *Delegate) MergeRemoteState(buf []byte, join bool)
- func (d *Delegate) NodeMeta(limit int) []byte
- func (d *Delegate) NotifyMsg(msg []byte)
- func (d *Delegate) Stop()
- type Event
- type NodeEvents
- type Option
- func WithAdvertiseAddr(advertiseAddr string) Option
- func WithAdvertisePort(advertisePort int) Option
- func WithBindAddr(bindAddr string) Option
- func WithBindPort(bindPort int) Option
- func WithCIDRsAllowed(ips []net.IPNet) Option
- func WithDelegate(delegate memberlist.Delegate) Option
- func WithEvent(event memberlist.EventDelegate) Option
- func WithHandoffQueueDepth(depth int) Option
- func WithLogOutput(writer io.Writer, level string) Option
- func WithNodeName(name string) Option
- func WithPushPullInterval(interval int) Option
- func WithSecretKey(secretKey []byte) Option
- type RoundRobinBalancer
Constants ¶
View Source
const ( EventJoin = iota + 1 EventLeave EventUpdate )
View Source
const ( LogLevelDebug = "DEBUG" LogLevelWarn = "WARN" LogLevelError = "ERROR" LogLevelInfo = "INFO" )
Variables ¶
This section is empty.
Functions ¶
func GenNodeName ¶
func GenNodeName() string
func NewOptions ¶
func NewOptions(opts ...Option) *memberlist.Config
Types ¶
type Broadcast ¶
type Broadcast struct {
// contains filtered or unexported fields
}
func (*Broadcast) Invalidates ¶
func (b *Broadcast) Invalidates(other memberlist.Broadcast) bool
type Cluster ¶
type Cluster struct { Config *memberlist.Config List *memberlist.Memberlist // contains filtered or unexported fields }
func (*Cluster) BindMqttServer ¶
func (*Cluster) GetNodeByIP ¶
func (c *Cluster) GetNodeByIP(ipAddr net.IP) *memberlist.Node
func (*Cluster) LocalNode ¶
func (c *Cluster) LocalNode() *memberlist.Node
func (*Cluster) Members ¶
func (c *Cluster) Members() []*memberlist.Node
func (*Cluster) NumMembers ¶
func (*Cluster) OnSubscribe ¶
func (*Cluster) OnUnsubscribe ¶
func (*Cluster) SendToNode ¶
SendToNode send message to a node
func (*Cluster) SendToOthers ¶
SendToOthers send message to all nodes except yourself
type Delegate ¶
type Delegate struct { sync.RWMutex Mch chan []byte State map[string]*system.Info Broadcasts *memberlist.TransmitLimitedQueue LocalNode *memberlist.Node // contains filtered or unexported fields }
func NewDelegate ¶
func NewDelegate() *Delegate
func (*Delegate) BindMqttServer ¶
func (*Delegate) GetBroadcasts ¶
func (*Delegate) InitBroadcasts ¶
func (d *Delegate) InitBroadcasts(list *memberlist.Memberlist)
func (*Delegate) LocalState ¶
func (*Delegate) MergeRemoteState ¶
type Event ¶
type Event struct { Type int Node *memberlist.Node }
type NodeEvents ¶
type NodeEvents struct {
// contains filtered or unexported fields
}
func NewEvents ¶
func NewEvents() *NodeEvents
func (*NodeEvents) NotifyJoin ¶
func (n *NodeEvents) NotifyJoin(node *memberlist.Node)
func (*NodeEvents) NotifyLeave ¶
func (n *NodeEvents) NotifyLeave(node *memberlist.Node)
func (*NodeEvents) NotifyUpdate ¶
func (n *NodeEvents) NotifyUpdate(node *memberlist.Node)
type Option ¶
type Option func(conf *memberlist.Config)
func WithAdvertiseAddr ¶ added in v1.2.0
WithAdvertiseAddr "" default "0.0.0.0"
func WithAdvertisePort ¶ added in v1.2.0
WithAdvertisePort 0 dynamically bind a port
func WithBindAddr ¶ added in v1.2.0
WithBindAddr "" default "0.0.0.0"
func WithCIDRsAllowed ¶
func WithDelegate ¶
func WithDelegate(delegate memberlist.Delegate) Option
func WithEvent ¶
func WithEvent(event memberlist.EventDelegate) Option
func WithHandoffQueueDepth ¶
func WithNodeName ¶
WithNodeName the name of this node. This must be unique in the cluster.
func WithPushPullInterval ¶
func WithSecretKey ¶
type RoundRobinBalancer ¶
func NewRoundRobinBalancer ¶
func NewRoundRobinBalancer(cs *Cluster) *RoundRobinBalancer
func (*RoundRobinBalancer) Get ¶
func (r *RoundRobinBalancer) Get() *memberlist.Node
Click to show internal directories.
Click to hide internal directories.