Documentation ¶
Index ¶
- type Config
- func WithAdvertiseAddrPort(addr string, port int) Config
- func WithBindAddrPort(addr string, port int) Config
- func WithBroadcastTimeout(d time.Duration) Config
- func WithClientAddrPort(addr string, port int) Config
- func WithDaemon(address, nonce string) Config
- func WithLogOutput(logOutput io.Writer) Config
- func WithNodeName(nodeName string) Config
- func WithPeerType(peerType PeerType) Config
- type ErrorEvent
- type Event
- type EventHandler
- type EventType
- type Handler
- type Member
- type MemberEvent
- type MemberEventType
- type MemberList
- type Members
- func (m *Members) AddHandler(handler Handler)
- func (m *Members) DispatchEvent(e Event) error
- func (m *Members) Init(config ...Config) error
- func (m *Members) Join() (int, error)
- func (m *Members) Leave() error
- func (m *Members) MemberList() *MemberList
- func (m *Members) RemoveHandler(handler Handler)
- func (m *Members) Shutdown() error
- func (m *Members) Walk(fn func(PeerInfo) error) error
- type Option
- type PeerInfo
- type PeerType
- type QueryEvent
- type UserEvent
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config func(*config)
Config defines a option for generating a filesystem config
func WithAdvertiseAddrPort ¶
WithAdvertiseAddrPort adds a AdvertiseAddr and AdvertisePort to the configuration
func WithBindAddrPort ¶
WithBindAddrPort adds a BindAddr and BindPort to the configuration
func WithBroadcastTimeout ¶
WithBroadcastTimeout adds a BroadcastTimeout to the configuration
func WithClientAddrPort ¶
WithClientAddrPort adds a ClientAddr and ClientPort to the configuration
func WithDaemon ¶
WithDaemon adds a DaemonAddress, DaemonNonce to the configuration
func WithLogOutput ¶
WithLogOutput adds a LogOutput to the configuration
func WithNodeName ¶
WithNodeName adds a NodeName to the configuration
func WithPeerType ¶
WithPeerType adds a PeerType to the configuration
type ErrorEvent ¶
type ErrorEvent struct {
Error error
}
ErrorEvent is an event that represents when an error comes from the cluster
type Event ¶
type Event interface { // Type is one of the EventType Type() EventType }
Event is the member event to be acted upon
func NewErrorEvent ¶
NewErrorEvent creates a new ErrorEvent with the correct dependencies
func NewMemberEvent ¶
func NewMemberEvent(eventType MemberEventType, members []Member) Event
NewMemberEvent creates a new MemberEvent with the correct dependencies
func NewQueryEvent ¶
NewQueryEvent creates a new QueryEvent with the correct dependencies
func NewUserEvent ¶
NewUserEvent creates a new UserEvent with the correct dependencies
type EventHandler ¶
type EventHandler struct {
// contains filtered or unexported fields
}
EventHandler defines a handler for dealing with events coming from the underlying serf agent
func (*EventHandler) HandleEvent ¶
func (h *EventHandler) HandleEvent(event serf.Event)
HandleEvent handles any events from the underlying serf agent.
type Handler ¶
type Handler interface {
HandleEvent(Event)
}
Handler handles any events coming from the underlying serf agent
type Member ¶
type Member struct {
// contains filtered or unexported fields
}
Member represents a node in the cluster.
type MemberEvent ¶
type MemberEvent struct { EventType MemberEventType Members []Member }
MemberEvent is an event that represents when a member has changed in the cluster
func (MemberEvent) Type ¶
func (MemberEvent) Type() EventType
Type returns the EventType of the Event
type MemberEventType ¶
type MemberEventType int
MemberEventType is the potential event type for member event
const ( // EventMemberJoined notified from a cluster when a member has joined EventMemberJoined MemberEventType = iota // EventMemberLeft notified from a cluster when a member has left EventMemberLeft // EventMemberFailed notified from a cluster when a member has failed EventMemberFailed // EventMemberUpdated notified from a cluster when a member has updated EventMemberUpdated )
type MemberList ¶
type MemberList struct {
// contains filtered or unexported fields
}
MemberList represents a way to manage members with in a cluster
func (*MemberList) LocalNode ¶
func (m *MemberList) LocalNode() Member
LocalNode is used to return the local Member
func (*MemberList) Members ¶
func (m *MemberList) Members() []Member
Members returns a point-in-time snapshot of the members of this cluster.
func (*MemberList) NumMembers ¶
func (m *MemberList) NumMembers() int
NumMembers returns the number of alive nodes currently known. Between the time of calling this and calling Members, the number of alive nodes may have changed, so this shouldn't be used to determine how many members will be returned by Members.
type Members ¶
type Members struct {
// contains filtered or unexported fields
}
Members represents a way of joining a members cluster
func NewMembers ¶
NewMembers creates a new members list to join.
func (*Members) AddHandler ¶
AddHandler attaches an event listener to all the members events and broadcasts the event to the handler.
func (*Members) DispatchEvent ¶
DispatchEvent dispatches an event to all the members in the cluster.
func (*Members) Join ¶
Join joins an existing Serf cluster. Returns the number of nodes successfully contacted.
func (*Members) MemberList ¶
func (m *Members) MemberList() *MemberList
MemberList is used to get access to the underlying Memberlist instance
func (*Members) RemoveHandler ¶
RemoveHandler removes the event listener.
type Option ¶
type Option func(*options)
Option defines a option for generating a filesystem options
func WithExisting ¶
WithExisting adds a Existing to the configuration
func WithLogger ¶
WithLogger sets the logger on the option
type PeerInfo ¶
type PeerInfo struct { Name string `json:"name"` Type PeerType `json:"type"` DaemonAddress string `json:"daemon_address"` DaemonNonce string `json:"daemon_nonce"` }
PeerInfo describes what each peer is, along with the addr and port of each
type QueryEvent ¶
QueryEvent is an event that represents when a query from the cluster that needs to be answered.