Documentation
¶
Overview ¶
Package membership is a generated GoMock package.
Index ¶
- Constants
- Variables
- func BuildBroadcastHostPort(listenerPeerInfo tchannel.LocalPeerInfo, broadcastAddress string) (string, error)
- func ServiceNameToServiceTypeEnum(name string) (persistence.ServiceType, error)
- func SplitHostPortTyped(hostPort string) (net.IP, uint16, error)
- type ChangedEvent
- type HostInfo
- type MockMonitor
- func (m *MockMonitor) AddListener(service, name string, notifyChannel chan<- *ChangedEvent) error
- func (m *MockMonitor) EXPECT() *MockMonitorMockRecorder
- func (m *MockMonitor) EvictSelf() error
- func (m *MockMonitor) GetMemberCount(role string) (int, error)
- func (m *MockMonitor) GetReachableMembers() ([]string, error)
- func (m *MockMonitor) GetResolver(service string) (ServiceResolver, error)
- func (m *MockMonitor) Lookup(service, key string) (*HostInfo, error)
- func (m *MockMonitor) RemoveListener(service, name string) error
- func (m *MockMonitor) Start()
- func (m *MockMonitor) Stop()
- func (m *MockMonitor) WhoAmI() (*HostInfo, error)
- type MockMonitorMockRecorder
- func (mr *MockMonitorMockRecorder) AddListener(service, name, notifyChannel interface{}) *gomock.Call
- func (mr *MockMonitorMockRecorder) EvictSelf() *gomock.Call
- func (mr *MockMonitorMockRecorder) GetMemberCount(role interface{}) *gomock.Call
- func (mr *MockMonitorMockRecorder) GetReachableMembers() *gomock.Call
- func (mr *MockMonitorMockRecorder) GetResolver(service interface{}) *gomock.Call
- func (mr *MockMonitorMockRecorder) Lookup(service, key interface{}) *gomock.Call
- func (mr *MockMonitorMockRecorder) RemoveListener(service, name interface{}) *gomock.Call
- func (mr *MockMonitorMockRecorder) Start() *gomock.Call
- func (mr *MockMonitorMockRecorder) Stop() *gomock.Call
- func (mr *MockMonitorMockRecorder) WhoAmI() *gomock.Call
- type MockServiceResolver
- func (m *MockServiceResolver) AddListener(name string, notifyChannel chan<- *ChangedEvent) error
- func (m *MockServiceResolver) EXPECT() *MockServiceResolverMockRecorder
- func (m *MockServiceResolver) Lookup(key string) (*HostInfo, error)
- func (m *MockServiceResolver) MemberCount() int
- func (m *MockServiceResolver) Members() []*HostInfo
- func (m *MockServiceResolver) RemoveListener(name string) error
- type MockServiceResolverMockRecorder
- func (mr *MockServiceResolverMockRecorder) AddListener(name, notifyChannel interface{}) *gomock.Call
- func (mr *MockServiceResolverMockRecorder) Lookup(key interface{}) *gomock.Call
- func (mr *MockServiceResolverMockRecorder) MemberCount() *gomock.Call
- func (mr *MockServiceResolverMockRecorder) Members() *gomock.Call
- func (mr *MockServiceResolverMockRecorder) RemoveListener(name interface{}) *gomock.Call
- type Monitor
- type RingPop
- type ServiceResolver
Constants ¶
const (
// RoleKey label is set by every single service as soon as it bootstraps its
// ringpop instance. The data for this key is the service name
RoleKey = "serviceName"
// RolePort label is set by every single service as soon as it bootstraps its
// ringpop instance. The data for this key represents the TCP port through which
// the service can be accessed.
RolePort = "servicePort"
)
Variables ¶
var ErrIncorrectAddressFormat = errors.New("Incorrect address format")
ErrIncorrectAddressFormat is thrown on incorrect address format
var ErrInsufficientHosts = serviceerror.NewInternal("Not enough hosts to serve the request")
ErrInsufficientHosts is thrown when there are not enough hosts to serve the request
var ErrListenerAlreadyExist = errors.New("Listener already exist for the service")
ErrListenerAlreadyExist is thrown on a duplicate AddListener call from the same listener
var ErrUnknownService = errors.New("Service not tracked by Monitor")
ErrUnknownService is thrown for a service that is not tracked by this instance
Functions ¶
func BuildBroadcastHostPort ¶ added in v0.27.0
func BuildBroadcastHostPort(listenerPeerInfo tchannel.LocalPeerInfo, broadcastAddress string) (string, error)
BuildBroadcastHostPort return the listener hostport from an existing tchannel and overrides the address with broadcastAddress if specified
func ServiceNameToServiceTypeEnum ¶ added in v0.27.0
func ServiceNameToServiceTypeEnum(name string) (persistence.ServiceType, error)
func SplitHostPortTyped ¶ added in v0.27.0
func SplitHostPortTyped(hostPort string) (net.IP, uint16, error)
SplitHostPortTyped expands upon net.SplitHostPort by providing type parsing.
Types ¶
type ChangedEvent ¶
type ChangedEvent struct {
HostsAdded []*HostInfo
HostsUpdated []*HostInfo
HostsRemoved []*HostInfo
}
ChangedEvent describes a change in membership
type HostInfo ¶
type HostInfo struct {
// contains filtered or unexported fields
}
HostInfo is a type that contains the info about a temporal host
func NewHostInfo ¶
func NewHostInfo(addr string, labels map[string]string) *HostInfo
NewHostInfo creates a new HostInfo instance
func (*HostInfo) GetAddress ¶
func (hi *HostInfo) GetAddress() string
GetAddress returns the ip:port address
func (*HostInfo) Identity ¶
func (hi *HostInfo) Identity() string
Identity implements ringpop's Membership interface
type MockMonitor ¶ added in v0.27.0
type MockMonitor struct {
// contains filtered or unexported fields
}
MockMonitor is a mock of Monitor interface.
func NewMockMonitor ¶ added in v0.27.0
func NewMockMonitor(ctrl *gomock.Controller) *MockMonitor
NewMockMonitor creates a new mock instance.
func (*MockMonitor) AddListener ¶ added in v0.27.0
func (m *MockMonitor) AddListener(service, name string, notifyChannel chan<- *ChangedEvent) error
AddListener mocks base method.
func (*MockMonitor) EXPECT ¶ added in v0.27.0
func (m *MockMonitor) EXPECT() *MockMonitorMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockMonitor) EvictSelf ¶ added in v0.27.0
func (m *MockMonitor) EvictSelf() error
EvictSelf mocks base method.
func (*MockMonitor) GetMemberCount ¶ added in v0.27.0
func (m *MockMonitor) GetMemberCount(role string) (int, error)
GetMemberCount mocks base method.
func (*MockMonitor) GetReachableMembers ¶ added in v0.27.0
func (m *MockMonitor) GetReachableMembers() ([]string, error)
GetReachableMembers mocks base method.
func (*MockMonitor) GetResolver ¶ added in v0.27.0
func (m *MockMonitor) GetResolver(service string) (ServiceResolver, error)
GetResolver mocks base method.
func (*MockMonitor) Lookup ¶ added in v0.27.0
func (m *MockMonitor) Lookup(service, key string) (*HostInfo, error)
Lookup mocks base method.
func (*MockMonitor) RemoveListener ¶ added in v0.27.0
func (m *MockMonitor) RemoveListener(service, name string) error
RemoveListener mocks base method.
type MockMonitorMockRecorder ¶ added in v0.27.0
type MockMonitorMockRecorder struct {
// contains filtered or unexported fields
}
MockMonitorMockRecorder is the mock recorder for MockMonitor.
func (*MockMonitorMockRecorder) AddListener ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) AddListener(service, name, notifyChannel interface{}) *gomock.Call
AddListener indicates an expected call of AddListener.
func (*MockMonitorMockRecorder) EvictSelf ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) EvictSelf() *gomock.Call
EvictSelf indicates an expected call of EvictSelf.
func (*MockMonitorMockRecorder) GetMemberCount ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) GetMemberCount(role interface{}) *gomock.Call
GetMemberCount indicates an expected call of GetMemberCount.
func (*MockMonitorMockRecorder) GetReachableMembers ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) GetReachableMembers() *gomock.Call
GetReachableMembers indicates an expected call of GetReachableMembers.
func (*MockMonitorMockRecorder) GetResolver ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) GetResolver(service interface{}) *gomock.Call
GetResolver indicates an expected call of GetResolver.
func (*MockMonitorMockRecorder) Lookup ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) Lookup(service, key interface{}) *gomock.Call
Lookup indicates an expected call of Lookup.
func (*MockMonitorMockRecorder) RemoveListener ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) RemoveListener(service, name interface{}) *gomock.Call
RemoveListener indicates an expected call of RemoveListener.
func (*MockMonitorMockRecorder) Start ¶ added in v0.27.0
func (mr *MockMonitorMockRecorder) Start() *gomock.Call
Start indicates an expected call of Start.
type MockServiceResolver ¶ added in v0.27.0
type MockServiceResolver struct {
// contains filtered or unexported fields
}
MockServiceResolver is a mock of ServiceResolver interface.
func NewMockServiceResolver ¶ added in v0.27.0
func NewMockServiceResolver(ctrl *gomock.Controller) *MockServiceResolver
NewMockServiceResolver creates a new mock instance.
func (*MockServiceResolver) AddListener ¶ added in v0.27.0
func (m *MockServiceResolver) AddListener(name string, notifyChannel chan<- *ChangedEvent) error
AddListener mocks base method.
func (*MockServiceResolver) EXPECT ¶ added in v0.27.0
func (m *MockServiceResolver) EXPECT() *MockServiceResolverMockRecorder
EXPECT returns an object that allows the caller to indicate expected use.
func (*MockServiceResolver) Lookup ¶ added in v0.27.0
func (m *MockServiceResolver) Lookup(key string) (*HostInfo, error)
Lookup mocks base method.
func (*MockServiceResolver) MemberCount ¶ added in v0.27.0
func (m *MockServiceResolver) MemberCount() int
MemberCount mocks base method.
func (*MockServiceResolver) Members ¶ added in v0.27.0
func (m *MockServiceResolver) Members() []*HostInfo
Members mocks base method.
func (*MockServiceResolver) RemoveListener ¶ added in v0.27.0
func (m *MockServiceResolver) RemoveListener(name string) error
RemoveListener mocks base method.
type MockServiceResolverMockRecorder ¶ added in v0.27.0
type MockServiceResolverMockRecorder struct {
// contains filtered or unexported fields
}
MockServiceResolverMockRecorder is the mock recorder for MockServiceResolver.
func (*MockServiceResolverMockRecorder) AddListener ¶ added in v0.27.0
func (mr *MockServiceResolverMockRecorder) AddListener(name, notifyChannel interface{}) *gomock.Call
AddListener indicates an expected call of AddListener.
func (*MockServiceResolverMockRecorder) Lookup ¶ added in v0.27.0
func (mr *MockServiceResolverMockRecorder) Lookup(key interface{}) *gomock.Call
Lookup indicates an expected call of Lookup.
func (*MockServiceResolverMockRecorder) MemberCount ¶ added in v0.27.0
func (mr *MockServiceResolverMockRecorder) MemberCount() *gomock.Call
MemberCount indicates an expected call of MemberCount.
func (*MockServiceResolverMockRecorder) Members ¶ added in v0.27.0
func (mr *MockServiceResolverMockRecorder) Members() *gomock.Call
Members indicates an expected call of Members.
func (*MockServiceResolverMockRecorder) RemoveListener ¶ added in v0.27.0
func (mr *MockServiceResolverMockRecorder) RemoveListener(name interface{}) *gomock.Call
RemoveListener indicates an expected call of RemoveListener.
type Monitor ¶
type Monitor interface {
common.Daemon
WhoAmI() (*HostInfo, error)
// EvictSelf evicts this member from the membership ring. After this method is
// called, other members will discover that this node is no longer part of the
// ring. This primitive is useful to carry out graceful host shutdown during deployments.
EvictSelf() error
Lookup(service string, key string) (*HostInfo, error)
GetResolver(service string) (ServiceResolver, error)
// AddListener adds a listener for this service.
// The listener will get notified on the given
// channel, whenever there is a membership change.
// @service: The service to be listened on
// @name: The name for identifying the listener
// @notifyChannel: The channel on which the caller receives notifications
AddListener(service string, name string, notifyChannel chan<- *ChangedEvent) error
// RemoveListener removes a listener for this service.
RemoveListener(service string, name string) error
// GetReachableMembers returns addresses of all members of the ring
GetReachableMembers() ([]string, error)
// GetMemberCount returns the number of reachable members
// currently in this node's membership list for the given role
GetMemberCount(role string) (int, error)
}
Monitor provides membership information for all temporal services. It can be used to query which member host of a service is responsible for serving a given key.
func NewRingpopMonitor ¶
func NewRingpopMonitor(
serviceName string,
services map[string]int,
rp *RingPop,
logger log.Logger,
metadataManager persistence.ClusterMetadataManager,
broadcastHostPortResolver func() (string, error),
) Monitor
NewRingpopMonitor returns a ringpop-based membership monitor
type RingPop ¶ added in v0.27.0
type RingPop struct {
*ringpop.Ringpop
// contains filtered or unexported fields
}
RingPop is a simple wrapper
func NewRingPop ¶ added in v0.27.0
func NewRingPop(
ringPop *ringpop.Ringpop,
maxJoinDuration time.Duration,
logger log.Logger,
) *RingPop
NewRingPop create a new ring pop wrapper
type ServiceResolver ¶
type ServiceResolver interface {
Lookup(key string) (*HostInfo, error)
// AddListener adds a listener which will get notified on the given
// channel, whenever membership changes.
// @name: The name for identifying the listener
// @notifyChannel: The channel on which the caller receives notifications
AddListener(name string, notifyChannel chan<- *ChangedEvent) error
// RemoveListener removes a listener for this service.
RemoveListener(name string) error
// MemberCount returns host count in hashring for any particular role
MemberCount() int
// Members returns all host addresses in hashring for any particular role
Members() []*HostInfo
}
ServiceResolver provides membership information for a specific temporal service. It can be used to resolve which member host is responsible for serving a given key.