ХабрПостыНовостиМегапосты?

Представляем Open Source-инструмент etcd-await-election для leader-election на нескольких нодах

Мы рады представить наш новый проект etcd-await-election, который позволяет выполнять leader-election на нескольких нодах с помощью распределённого хранилища etcd.

Проект идеологически продолжает идею k8s-await-election, гарантируя эксклюзивный запуск пользовательского процесса только после проведения выборов. В отличие от него, он не требует наличия Kubernetes и работает напрямую с etcd.

Поддерживается SSL, быстрое восстановление при перезапуске, перехват лока в приоритетном режиме и контроль выполнения процесса. Если лок по какой-то причине был потерян, пользовательский процесс незамедлительно будет остановлен.

@TimurTukaev
11.07.2024 11:17 UTC
Первоисточник

Комментарии

@WhiteKeep
11.07.2024 09:21 UTC
+1

А для чего на практике может пригодиться это решение?

Допустим, мне нужно запустить несколько приложений-шедулеров отказоустойчиво, чтобы суммарно они выполняли свою работу ровно раз в день, вне зависимости от того, сколько их запущено и упал ли кто-то. Может ли etcd-await-election закрыть эту потребность? Или он для чего-то другого?

11.07.2024 14:19 UTC
+1

Да, примерно для такого кейса и создавалось.

Например у вас есть три машины, и на них равёрнут etcd кластер.
Тогда вы можете описать systemd unit, который будет запускать произвольный процесс с помощью etcd-await-election.

Если вы запустите три таких процесса в рамках одного lock name, только один из них возьмёт lease и будет выполняться, оставльные будут ждать смерти первого.

Как только первый умрёт, лок возьмёт кто-то другой и запустит ваш процесс уже на новой ноде.

@apcs660
16.04.2025 20:48 UTC
0

Полезная вещь