Documentation
¶
Index ¶
Constants ¶
View Source
const ( // AgeSyncFieldName — флаг для таймаута синхронизации "возраста" (term). // Этот таймаут определяет, сколько реплика ждёт ответы на запросы AgeSync. AgeSyncFieldName = "cluster.delay.election.age" // VoteFieldName — флаг для таймаута голосования. // Этот таймаут определяет, сколько реплика ждёт бюллетени от других VoteFieldName = "cluster.delay.election.vote" )
Variables ¶
View Source
var ( // AgeSyncDefault — время ожидания ответов при синхронизации term (5 секунд). // За 5 секунд все реплики должны успеть ответить, чтобы выборы не затягивались. AgeSyncDefault = 5 * time.Second // VoteDefault — время ожидания бюллетеней при голосовании (30 секунд). // 30 секунд — это компромисс между скоростью и надёжностью. // Если реплика медленная, она всё равно успеет проголосовать. VoteDefault = 30 * time.Second )
View Source
var Component = compogo.Component{ Name: "cluster.election.config", Init: compogo.StepFunc(func(container compogo.Container) error { return container.Provide(NewConfig) }), BindFlags: compogo.BindFlags(func(flagSet flag.FlagSet, container compogo.Container) error { return container.Invoke(func(config *Config) { flagSet.DurationVar(&config.AgeSync, AgeSyncFieldName, AgeSyncDefault, "") flagSet.DurationVar(&config.Vote, VoteFieldName, VoteDefault, "") }) }), Configuration: compogo.StepFunc(func(container compogo.Container) error { return container.Invoke(Configuration) }), }
Component — компонент для инициализации конфигурации выборов.
Жизненный цикл компонента:
- Init — регистрирует конструктор NewConfig в DI-контейнере.
- BindFlags — привязывает флаги командной строки.
- Configuration — загружает конфигурацию из Configurator.
Флаги:
- --cluster.delay.election.age — таймаут для синхронизации term
- --cluster.delay.election.vote — таймаут для голосования
Functions ¶
This section is empty.
Types ¶
type Config ¶
Config содержит настройки для выборов.
func Configuration ¶
func Configuration(config *Config, configurator compogo.Configurator) *Config
Configuration загружает конфигурацию из Configurator.
Важно: если таймауты равны 0, они заменяются на значения по умолчанию. Это предотвращает зависание выборов при некорректной конфигурации.
Click to show internal directories.
Click to hide internal directories.