Documentation
¶
Overview ¶
Package reaper реализует сборщик "мёртвых" реплик.
Reaper — это механизм автоматической очистки кластера от реплик, которые долго находятся в статусе Disconnection.
Принцип работы:
- Reaper подписывается на изменения статуса Peer'ов.
- Когда Peer переходит в Disconnection, он добавляется в очередь ожидания.
- Если за время Wait Peer не вернулся в Ready, он удаляется из кластера.
- Reaper проверяет очередь каждые Delay секунд.
Важно: реплики из discovery (оригинальный список хостов) не удаляются. Это гарантирует, что кластер не "потеряет" свои базовые узлы.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var Component = compogo.Component{ Name: "cluster.reaper", Dependencies: compogo.Components{ &reaper.Component, &repeater.Component, &discovery.Component, }, Init: compogo.StepFunc(func(container compogo.Container) error { return container.Provide(NewReaper) }), PostExecute: compogo.StepFunc(func(container compogo.Container) error { return container.Invoke(func(m cluster.Manager, reaper *Reaper) { m.OnAddPeer().Subscribe(reaper.onAddPeer) m.OnDeletingPeer().Subscribe(reaper.onDeletingPeer) }) }), Execute: compogo.StepFunc(func(container compogo.Container) error { return container.Invoke(func(r repeater.Repeater, reaperConfig *reaper.Config, reaper *Reaper) error { return r.AddProcess(repeater.NewTask("cluster.reaper", reaperConfig.Delay, reaper.Process)) }) }), }
Component - компонент сборщика мёртвых узлов для Compogo.
Компонент подписывается на события добавления и удаления Peer'ов, а также запускает периодическую задачу для проверки очереди ожидания.
Functions ¶
This section is empty.
Types ¶
type Reaper ¶
type Reaper struct {
// contains filtered or unexported fields
}
Reaper — сборщик мёртвых узлов.
Отслеживает Peer'ов в статусе Disconnection и удаляет их, если они не восстанавливаются в течение заданного времени.
func NewReaper ¶
func NewReaper(config *reaper.Config, manager cluster.Manager, discoveryConfig *discovery.Config) *Reaper
NewReaper создаёт новый сборщик мёртвых узлов.
Принимает:
- config — конфигурация (Wait, Delay)
- manager — менеджер кластера
- discoveryConfig — конфиг discovery (для получения оригинальных хостов)