membership

package
v1.3.2 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2025 License: Apache-2.0 Imports: 23 Imported by: 43

Documentation

Overview

Package membership is a generated GoMock package.

Package membership provides service discovery and membership information mechanism

Package membership is a generated GoMock package.

Package membership is a generated GoMock package.

Index

Constants

View Source
const (
	PortTchannel = "tchannel"
	PortGRPC     = "grpc"
)

Variables

View Source
var ErrInsufficientHosts = &types.InternalServiceError{Message: "Not enough hosts to serve the request"}

ErrInsufficientHosts is thrown when there are not enough hosts to serve the request

Functions

This section is empty.

Types

type ChangedEvent

type ChangedEvent struct {
	HostsAdded   []string
	HostsUpdated []string
	HostsRemoved []string
}

ChangedEvent describes a change in a membership ring

func (*ChangedEvent) Empty added in v1.2.14

func (ce *ChangedEvent) Empty() bool

type HostInfo

type HostInfo struct {
	// contains filtered or unexported fields
}

HostInfo is a type that contains the info about a cadence host

func NewDetailedHostInfo added in v0.24.0

func NewDetailedHostInfo(addr string, identity string, portMap PortMap) HostInfo

NewDetailedHostInfo creates a new HostInfo instance with identity and portmap information

func NewHostInfo

func NewHostInfo(addr string) HostInfo

NewHostInfo creates a new HostInfo instance

func (HostInfo) Belongs added in v0.24.0

func (hi HostInfo) Belongs(address string) (bool, error)

Belongs tells if ip:port is assigned to this member

func (HostInfo) GetAddress

func (hi HostInfo) GetAddress() string

GetAddress returns the ip:port address

func (HostInfo) GetNamedAddress added in v0.24.0

func (hi HostInfo) GetNamedAddress(port string) (string, error)

GetNamedAddress returns the ip:port address

func (HostInfo) Identity

func (hi HostInfo) Identity() string

Identity implements ringpop's Membership interface

func (HostInfo) Label

func (hi HostInfo) Label(key string) (value string, has bool)

Label is a noop function to conform to ringpop hashring member interface

func (HostInfo) SetLabel

func (hi HostInfo) SetLabel(key string, value string)

SetLabel is a noop function to conform to ringpop hashring member interface

func (HostInfo) String added in v0.24.0

func (hi HostInfo) String() string

String will return a human-readable host details

type MockPeerProvider added in v0.24.0

type MockPeerProvider struct {
	// contains filtered or unexported fields
}

MockPeerProvider is a mock of PeerProvider interface.

func NewMockPeerProvider added in v0.24.0

func NewMockPeerProvider(ctrl *gomock.Controller) *MockPeerProvider

NewMockPeerProvider creates a new mock instance.

func (*MockPeerProvider) EXPECT added in v0.24.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockPeerProvider) GetMembers added in v0.24.0

func (m *MockPeerProvider) GetMembers(service string) ([]HostInfo, error)

GetMembers mocks base method.

func (*MockPeerProvider) SelfEvict added in v0.24.0

func (m *MockPeerProvider) SelfEvict() error

SelfEvict mocks base method.

func (*MockPeerProvider) Start added in v0.24.0

func (m *MockPeerProvider) Start()

Start mocks base method.

func (*MockPeerProvider) Stop added in v0.24.0

func (m *MockPeerProvider) Stop()

Stop mocks base method.

func (*MockPeerProvider) Subscribe added in v0.24.0

func (m *MockPeerProvider) Subscribe(name string, handler func(ChangedEvent)) error

Subscribe mocks base method.

func (*MockPeerProvider) WhoAmI added in v0.24.0

func (m *MockPeerProvider) WhoAmI() (HostInfo, error)

WhoAmI mocks base method.

type MockPeerProviderMockRecorder added in v0.24.0

type MockPeerProviderMockRecorder struct {
	// contains filtered or unexported fields
}

MockPeerProviderMockRecorder is the mock recorder for MockPeerProvider.

func (*MockPeerProviderMockRecorder) GetMembers added in v0.24.0

func (mr *MockPeerProviderMockRecorder) GetMembers(service any) *gomock.Call

GetMembers indicates an expected call of GetMembers.

func (*MockPeerProviderMockRecorder) SelfEvict added in v0.24.0

func (mr *MockPeerProviderMockRecorder) SelfEvict() *gomock.Call

SelfEvict indicates an expected call of SelfEvict.

func (*MockPeerProviderMockRecorder) Start added in v0.24.0

Start indicates an expected call of Start.

func (*MockPeerProviderMockRecorder) Stop added in v0.24.0

Stop indicates an expected call of Stop.

func (*MockPeerProviderMockRecorder) Subscribe added in v0.24.0

func (mr *MockPeerProviderMockRecorder) Subscribe(name, handler any) *gomock.Call

Subscribe indicates an expected call of Subscribe.

func (*MockPeerProviderMockRecorder) WhoAmI added in v0.24.0

WhoAmI indicates an expected call of WhoAmI.

type MockResolver added in v0.24.0

type MockResolver struct {
	// contains filtered or unexported fields
}

MockResolver is a mock of Resolver interface.

func NewMockResolver added in v0.24.0

func NewMockResolver(ctrl *gomock.Controller) *MockResolver

NewMockResolver creates a new mock instance.

func (*MockResolver) EXPECT added in v0.24.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockResolver) EvictSelf added in v0.24.0

func (m *MockResolver) EvictSelf() error

EvictSelf mocks base method.

func (*MockResolver) Lookup added in v0.24.0

func (m *MockResolver) Lookup(service, key string) (HostInfo, error)

Lookup mocks base method.

func (*MockResolver) LookupByAddress added in v0.24.0

func (m *MockResolver) LookupByAddress(service, address string) (HostInfo, error)

LookupByAddress mocks base method.

func (*MockResolver) MemberCount added in v0.24.0

func (m *MockResolver) MemberCount(service string) (int, error)

MemberCount mocks base method.

func (*MockResolver) Members added in v0.24.0

func (m *MockResolver) Members(service string) ([]HostInfo, error)

Members mocks base method.

func (*MockResolver) Start added in v0.24.0

func (m *MockResolver) Start()

Start mocks base method.

func (*MockResolver) Stop added in v0.24.0

func (m *MockResolver) Stop()

Stop mocks base method.

func (*MockResolver) Subscribe added in v0.24.0

func (m *MockResolver) Subscribe(service, name string, notifyChannel chan<- *ChangedEvent) error

Subscribe mocks base method.

func (*MockResolver) Unsubscribe added in v0.24.0

func (m *MockResolver) Unsubscribe(service, name string) error

Unsubscribe mocks base method.

func (*MockResolver) WhoAmI added in v0.24.0

func (m *MockResolver) WhoAmI() (HostInfo, error)

WhoAmI mocks base method.

type MockResolverMockRecorder added in v0.24.0

type MockResolverMockRecorder struct {
	// contains filtered or unexported fields
}

MockResolverMockRecorder is the mock recorder for MockResolver.

func (*MockResolverMockRecorder) EvictSelf added in v0.24.0

func (mr *MockResolverMockRecorder) EvictSelf() *gomock.Call

EvictSelf indicates an expected call of EvictSelf.

func (*MockResolverMockRecorder) Lookup added in v0.24.0

func (mr *MockResolverMockRecorder) Lookup(service, key any) *gomock.Call

Lookup indicates an expected call of Lookup.

func (*MockResolverMockRecorder) LookupByAddress added in v0.24.0

func (mr *MockResolverMockRecorder) LookupByAddress(service, address any) *gomock.Call

LookupByAddress indicates an expected call of LookupByAddress.

func (*MockResolverMockRecorder) MemberCount added in v0.24.0

func (mr *MockResolverMockRecorder) MemberCount(service any) *gomock.Call

MemberCount indicates an expected call of MemberCount.

func (*MockResolverMockRecorder) Members added in v0.24.0

func (mr *MockResolverMockRecorder) Members(service any) *gomock.Call

Members indicates an expected call of Members.

func (*MockResolverMockRecorder) Start added in v0.24.0

func (mr *MockResolverMockRecorder) Start() *gomock.Call

Start indicates an expected call of Start.

func (*MockResolverMockRecorder) Stop added in v0.24.0

func (mr *MockResolverMockRecorder) Stop() *gomock.Call

Stop indicates an expected call of Stop.

func (*MockResolverMockRecorder) Subscribe added in v0.24.0

func (mr *MockResolverMockRecorder) Subscribe(service, name, notifyChannel any) *gomock.Call

Subscribe indicates an expected call of Subscribe.

func (*MockResolverMockRecorder) Unsubscribe added in v0.24.0

func (mr *MockResolverMockRecorder) Unsubscribe(service, name any) *gomock.Call

Unsubscribe indicates an expected call of Unsubscribe.

func (*MockResolverMockRecorder) WhoAmI added in v0.24.0

func (mr *MockResolverMockRecorder) WhoAmI() *gomock.Call

WhoAmI indicates an expected call of WhoAmI.

type MockSingleProvider added in v1.3.0

type MockSingleProvider struct {
	// contains filtered or unexported fields
}

MockSingleProvider is a mock of SingleProvider interface.

func NewMockSingleProvider added in v1.3.0

func NewMockSingleProvider(ctrl *gomock.Controller) *MockSingleProvider

NewMockSingleProvider creates a new mock instance.

func (*MockSingleProvider) AddressToHost added in v1.3.0

func (m *MockSingleProvider) AddressToHost(owner string) (HostInfo, error)

AddressToHost mocks base method.

func (*MockSingleProvider) EXPECT added in v1.3.0

EXPECT returns an object that allows the caller to indicate expected use.

func (*MockSingleProvider) Lookup added in v1.3.0

func (m *MockSingleProvider) Lookup(key string) (HostInfo, error)

Lookup mocks base method.

func (*MockSingleProvider) LookupRaw added in v1.3.0

func (m *MockSingleProvider) LookupRaw(key string) (string, error)

LookupRaw mocks base method.

func (*MockSingleProvider) MemberCount added in v1.3.0

func (m *MockSingleProvider) MemberCount() int

MemberCount mocks base method.

func (*MockSingleProvider) Members added in v1.3.0

func (m *MockSingleProvider) Members() []HostInfo

Members mocks base method.

func (*MockSingleProvider) Refresh added in v1.3.0

func (m *MockSingleProvider) Refresh() error

Refresh mocks base method.

func (*MockSingleProvider) Start added in v1.3.0

func (m *MockSingleProvider) Start()

Start mocks base method.

func (*MockSingleProvider) Stop added in v1.3.0

func (m *MockSingleProvider) Stop()

Stop mocks base method.

func (*MockSingleProvider) Subscribe added in v1.3.0

func (m *MockSingleProvider) Subscribe(name string, channel chan<- *ChangedEvent) error

Subscribe mocks base method.

func (*MockSingleProvider) Unsubscribe added in v1.3.0

func (m *MockSingleProvider) Unsubscribe(name string) error

Unsubscribe mocks base method.

type MockSingleProviderMockRecorder added in v1.3.0

type MockSingleProviderMockRecorder struct {
	// contains filtered or unexported fields
}

MockSingleProviderMockRecorder is the mock recorder for MockSingleProvider.

func (*MockSingleProviderMockRecorder) AddressToHost added in v1.3.0

func (mr *MockSingleProviderMockRecorder) AddressToHost(owner any) *gomock.Call

AddressToHost indicates an expected call of AddressToHost.

func (*MockSingleProviderMockRecorder) Lookup added in v1.3.0

func (mr *MockSingleProviderMockRecorder) Lookup(key any) *gomock.Call

Lookup indicates an expected call of Lookup.

func (*MockSingleProviderMockRecorder) LookupRaw added in v1.3.0

func (mr *MockSingleProviderMockRecorder) LookupRaw(key any) *gomock.Call

LookupRaw indicates an expected call of LookupRaw.

func (*MockSingleProviderMockRecorder) MemberCount added in v1.3.0

func (mr *MockSingleProviderMockRecorder) MemberCount() *gomock.Call

MemberCount indicates an expected call of MemberCount.

func (*MockSingleProviderMockRecorder) Members added in v1.3.0

Members indicates an expected call of Members.

func (*MockSingleProviderMockRecorder) Refresh added in v1.3.0

Refresh indicates an expected call of Refresh.

func (*MockSingleProviderMockRecorder) Start added in v1.3.0

Start indicates an expected call of Start.

func (*MockSingleProviderMockRecorder) Stop added in v1.3.0

Stop indicates an expected call of Stop.

func (*MockSingleProviderMockRecorder) Subscribe added in v1.3.0

func (mr *MockSingleProviderMockRecorder) Subscribe(name, channel any) *gomock.Call

Subscribe indicates an expected call of Subscribe.

func (*MockSingleProviderMockRecorder) Unsubscribe added in v1.3.0

func (mr *MockSingleProviderMockRecorder) Unsubscribe(name any) *gomock.Call

Unsubscribe indicates an expected call of Unsubscribe.

type MultiringResolver added in v0.24.0

type MultiringResolver struct {
	// contains filtered or unexported fields
}

MultiringResolver uses ring-per-service for membership information

func (*MultiringResolver) EvictSelf added in v0.24.0

func (rpo *MultiringResolver) EvictSelf() error

EvictSelf is used to remove this host from membership ring

func (*MultiringResolver) Lookup added in v0.24.0

func (rpo *MultiringResolver) Lookup(service string, key string) (HostInfo, error)

func (*MultiringResolver) LookupByAddress added in v0.24.0

func (rpo *MultiringResolver) LookupByAddress(service, address string) (HostInfo, error)

func (*MultiringResolver) MemberCount added in v0.24.0

func (rpo *MultiringResolver) MemberCount(service string) (int, error)

func (*MultiringResolver) Members added in v0.24.0

func (rpo *MultiringResolver) Members(service string) ([]HostInfo, error)

func (*MultiringResolver) Start added in v0.24.0

func (rpo *MultiringResolver) Start()

Start starts provider and all rings

func (*MultiringResolver) Stop added in v0.24.0

func (rpo *MultiringResolver) Stop()

Stop stops all rings and membership provider

func (*MultiringResolver) Subscribe added in v0.24.0

func (rpo *MultiringResolver) Subscribe(service string, name string, notifyChannel chan<- *ChangedEvent) error

func (*MultiringResolver) Unsubscribe added in v0.24.0

func (rpo *MultiringResolver) Unsubscribe(service string, name string) error

func (*MultiringResolver) WhoAmI added in v0.24.0

func (rpo *MultiringResolver) WhoAmI() (HostInfo, error)

WhoAmI asks to provide current instance address

type PeerProvider added in v0.24.0

type PeerProvider interface {
	common.Daemon

	GetMembers(service string) ([]HostInfo, error)
	WhoAmI() (HostInfo, error)
	SelfEvict() error
	Subscribe(name string, handler func(ChangedEvent)) error
}

PeerProvider is used to retrieve membership information from provider

type PortMap added in v0.24.0

type PortMap map[string]uint16

PortMap is a map of port names to port numbers.

func (PortMap) String added in v0.24.0

func (m PortMap) String() string

String formats a PortMap into a string of name:port pairs

type Resolver added in v0.24.0

type Resolver interface {
	common.Daemon

	// WhoAmI returns self host details.
	// To be consistent with peer provider, it is advised to use peer provider
	// to return this information
	WhoAmI() (HostInfo, error)

	// EvictSelf evicts this member from the membership ring. After this method is
	// called, other members should 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 will return host which is an owner for provided key.
	Lookup(service, key string) (HostInfo, error)

	// Subscribe adds a subscriber which will get detailed change data on the given
	// channel, whenever membership changes.
	Subscribe(service, name string, notifyChannel chan<- *ChangedEvent) error

	// Unsubscribe removes a subscriber for this service.
	Unsubscribe(service, name string) error

	// MemberCount returns host count in a service specific hashring
	MemberCount(service string) (int, error)

	// Members returns all host addresses in a service specific hashring
	Members(service string) ([]HostInfo, error)

	// LookupByAddress returns Host which owns IP:port tuple
	LookupByAddress(service, address string) (HostInfo, error)
}

Resolver provides membership information for all cadence services.

func NewResolver added in v0.24.0

func NewResolver(
	provider PeerProvider,
	metricsClient metrics.Client,
	logger log.Logger,
	rings map[string]SingleProvider,
) (Resolver, error)

NewResolver builds hashrings for all services

type Ring added in v1.3.0

type Ring struct {
	// contains filtered or unexported fields
}

func NewHashring added in v1.3.0

func NewHashring(
	service string,
	provider PeerProvider,
	timeSource clock.TimeSource,
	logger log.Logger,
	scope metrics.Scope,
) *Ring

func (*Ring) AddressToHost added in v1.3.0

func (r *Ring) AddressToHost(addr string) (HostInfo, error)

func (*Ring) Lookup added in v1.3.0

func (r *Ring) Lookup(key string) (HostInfo, error)

Lookup finds the host in the ring responsible for serving the given key

func (*Ring) LookupRaw added in v1.3.0

func (r *Ring) LookupRaw(key string) (string, error)

LookupRaw finds the host address in the ring responsible for serving the given key without converting it to HostInfo

func (*Ring) MemberCount added in v1.3.0

func (r *Ring) MemberCount() int

MemberCount returns number of hosts in a ring

func (*Ring) Members added in v1.3.0

func (r *Ring) Members() []HostInfo

func (*Ring) Refresh added in v1.3.0

func (r *Ring) Refresh() error

func (*Ring) Start added in v1.3.0

func (r *Ring) Start()

Start starts the hashring

func (*Ring) Stop added in v1.3.0

func (r *Ring) Stop()

Stop stops the resolver

func (*Ring) Subscribe added in v1.3.0

func (r *Ring) Subscribe(watcher string, notifyChannel chan<- *ChangedEvent) error

Subscribe registers callback watcher. Services can use this to be informed about membership changes

func (*Ring) Unsubscribe added in v1.3.0

func (r *Ring) Unsubscribe(name string) error

Unsubscribe removes subscriber

type SingleProvider added in v1.3.0

type SingleProvider interface {
	common.Daemon
	Lookup(key string) (HostInfo, error)
	LookupRaw(key string) (string, error)
	Subscribe(name string, channel chan<- *ChangedEvent) error
	AddressToHost(owner string) (HostInfo, error)
	Unsubscribe(name string) error
	Members() []HostInfo
	MemberCount() int
	Refresh() error
}

func NewShardDistributorResolver added in v1.3.0

func NewShardDistributorResolver(
	namespace string,
	client sharddistributor.Client,
	shardDistributionMode dynamicproperties.StringPropertyFn,
	ring SingleProvider,
	logger log.Logger,
) SingleProvider

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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