Documentation
¶
Index ¶
- func NewBalanceElectors(partitionID PartitionID, elector Elector, nodeAgent *cluster.NodeAgent, ...) (Elector, ElectionFactory)
- type ConstElectionFactory
- type Election
- type ElectionFactory
- type ElectionFactoryFunc
- type Elector
- type KeepLive
- type Leaders
- type Member
- func (mb *Member) CloseWithContext(ctx context.Context) error
- func (mb *Member) DoAsLeader(ctx context.Context, do func(ctx context.Context)) bool
- func (mb *Member) GetInfo() MemberInfo
- func (mb *Member) Start() bool
- func (mb *Member) StartElect(ctx context.Context) error
- func (mb *Member) SyncLeader(ctx context.Context, do func(ctx context.Context))
- func (mb *Member) ToFollower(ctx context.Context) error
- type MemberInfo
- type MemoDecider
- type MemoElector
- type Middle
- type Option
- type Partition
- type PartitionExecutor
- type PartitionID
- type PartitionScheduleTrigger
- type PartitionScheduler
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewBalanceElectors ¶
func NewBalanceElectors( partitionID PartitionID, elector Elector, nodeAgent *cluster.NodeAgent, delayDuration time.Duration) (Elector, ElectionFactory)
Types ¶
type ConstElectionFactory ¶
type ConstElectionFactory struct {
ConstID string
}
func (*ConstElectionFactory) NewElection ¶
type ElectionFactory ¶
type ElectionFactoryFunc ¶ added in v0.3.0
func (ElectionFactoryFunc) NewElection ¶ added in v0.3.0
type Leaders ¶
type Leaders struct {
// contains filtered or unexported fields
}
func NewLeaders ¶
func (*Leaders) AllPartitions ¶
func (pl *Leaders) AllPartitions() []PartitionID
func (*Leaders) GetPartitionMember ¶
func (pl *Leaders) GetPartitionMember(ctx context.Context, id PartitionID) *Member
func (*Leaders) SyncLeader ¶
func (pl *Leaders) SyncLeader(ctx context.Context, executor PartitionExecutor)
type Member ¶
type Member struct {
// contains filtered or unexported fields
}
func NewMember ¶
func NewMember(elector Elector, electFactory ElectionFactory, option Option) *Member
func (*Member) DoAsLeader ¶
func (*Member) GetInfo ¶ added in v0.3.0
func (mb *Member) GetInfo() MemberInfo
func (*Member) SyncLeader ¶ added in v0.3.0
block and run do until leader, return if not leader
type MemberInfo ¶
func (MemberInfo) IsLeader ¶
func (info MemberInfo) IsLeader() bool
type MemoDecider ¶
type MemoDecider struct {
// contains filtered or unexported fields
}
func NewMemoDecider ¶
func NewMemoDecider() *MemoDecider
func (*MemoDecider) CreateElector ¶
func (decider *MemoDecider) CreateElector() *MemoElector
type MemoElector ¶ added in v0.3.0
type MemoElector struct {
// contains filtered or unexported fields
}
func (*MemoElector) KeepLive ¶ added in v0.3.0
func (elector *MemoElector) KeepLive(ctx context.Context, keepLive KeepLive) error
func (*MemoElector) PostElection ¶ added in v0.3.0
func (elector *MemoElector) PostElection(ctx context.Context, election Election) error
func (*MemoElector) WaitElectionNotify ¶ added in v0.3.0
func (elector *MemoElector) WaitElectionNotify(ctx context.Context) (Election, error)
type Middle ¶
func NewRecorderMiddle ¶
type Partition ¶
type Partition struct {
// contains filtered or unexported fields
}
func NewPartition ¶
func NewPartition(id PartitionID, member *Member, vars map[string]string) *Partition
func (*Partition) ID ¶
func (part *Partition) ID() PartitionID
type PartitionExecutor ¶
type PartitionID ¶ added in v0.3.0
type PartitionID int64
type PartitionScheduleTrigger ¶
type PartitionScheduleTrigger struct {
// contains filtered or unexported fields
}
func (*PartitionScheduleTrigger) WaitSchedulerTrigger ¶
func (scheduler *PartitionScheduleTrigger) WaitSchedulerTrigger(ctx context.Context) ([]cluster.NodeSchedule, error)
type PartitionScheduler ¶
type PartitionScheduler struct {
// contains filtered or unexported fields
}
func NewPartitionScheduler ¶
func NewPartitionScheduler(partitions []PartitionID, maxKeepLiveDuration time.Duration) *PartitionScheduler
func (*PartitionScheduler) StartSchedule ¶
func (factory *PartitionScheduler) StartSchedule(ctx context.Context, observer *cluster.NodeObserver) (cluster.ScheduleTrigger, error)
Click to show internal directories.
Click to hide internal directories.