B
Backend | Boost
@py_backend1321 подп.
194просмотров
60.4%от подписчиков
13 октября 2025 г.
questionScore: 213
📦 Distributed Locks — как синхронизировать процессы в разных узлах? Когда у тебя несколько инстансов сервиса (например, в Kubernetes или Docker swarm), и каждый может одновременно попытаться изменить одни и те же данные — начинается хаос 🌀 Чтобы этого не произошло, используют распределённые блокировки (Distributed Locks). 🧠 Зачем нужны? Чтобы гарантировать, что только один процесс выполняет критическую операцию в один момент времени. 🔧 Реализации: Redis (Redlock) — популярный вариант от автора Redis. Работает через SET resource_name my_random_value NX PX 30000. Если удалось поставить — ты владелец. Etcd / Zookeeper — используют механизмы watch и lease. PostgreSQL advisory locks — база может быть тоже “lock-сервером”. ⚠️ Главная сложность: — Нужно учитывать задержки сети и “split brain” — когда сеть рвётся, и два узла думают, что они владеют замком 😬 ✅ Решение: Алгоритм Redlock — требует 3–5 независимых Redis-нод. Lock считается валидным, если получил большинство подтверждений (quorum).
194
просмотров
1009
символов
Да
эмодзи
Нет
медиа

Другие посты @py_backend1

Все посты канала →
📦 Distributed Locks — как синхронизировать процессы в разны — @py_backend1 | PostSniper