Что такое distributed lock?

Middle+
457 просмотров
AFK Offer AI

Distributed lock — механизм блокировки ресурса, который работает между несколькими инстансами сервиса. Обычный sync.Mutex работает только внутри одного процесса, а если у тебя три реплики — нужна внешняя блокировка. Redis с SETNX + TTL — самый популярный вариант. Redlock — алгоритм от автора Redis для надёжных распределённых блокировок. В нашем проекте мы используем FOR UPDATE SKIP LOCKED в PostgreSQL — это по сути распределённая блокировка на уровне строк, где база выступает координатором. Ключевой момент — TTL, чтобы блокировка не зависла навечно при падении держателя.

Следующий вопрос

Что такое circular dependency?