---
metadata:
  - name: generator
    content: Diplodoc Platform v5.52.0
alternate:
  - https://ydb.tech/docs/en/concepts/datamodel/coordination-node.md?version=v25.4
  - https://ydb.tech/docs/ru/concepts/datamodel/coordination-node.md?version=v25.4
  - href: ru/concepts/datamodel/coordination-node.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    type: text/markdown
    title: llms.txt
sourcePath: ru/core/concepts/datamodel/coordination-node.md
---
> **Documentation Index:** Fetch the complete configuration index at https://ydb.tech/docs/ru/llms.txt

# Узел координации

Узел координации (coordination node) — это объект в YDB, который позволяет клиентским приложениям распределённо координировать свои действия. Типовые сценарии использования узлов координации:

* Распределённые [семафоры](https://ru.wikipedia.org/wiki/Семафор_(программирование)) и [мьютексы](https://ru.wikipedia.org/wiki/Мьютекс).
* Обнаружение сервисов (service discovery).
* Выбор лидера (leader election).
* Очереди задач (task queue).
* Публикация небольших объёмов данных с возможностью получать оповещения об изменениях.
* Эфеменрные блокировки произвольных заранее неизвестных сущностей.

## Семафоры {#semaphore}

Узлы координации позволяют создавать внутри себя семафоры и управлять ими. Типовые операции с семафорами:

* Создание (create);
* Захват (acquire);
* Освобождение (release);
* Получение содержимого (describe);
* Удаление (delete).

К семафору может быть приложен счётчик, который ограничивает количество одновременных его захватов, а также небольшой объём произвольных данных.

YDB поддерживает два типа семафоров: персистентные и эфемерные. Персистентный семафор перед захватом необходимо создать, он будет существовать либо до момента его явного удаления, либо до удаления узла координации, в котором он был создан. Эфемерные семафоры автоматически создаются в момент их первого захвата и удаляются при последнем освобождении, что удобно использовать, например, в сценариях распределённой блокировки.

{% note info %}

Семафоры в YDB **не** являются рекурсивными. Таким образом, захват и освобождение семафора являются идемпотентными операциями.

{% endnote %}

## Использование {#usage}

Работа с узлами координации и семафорами осуществляется через [отдельные методы в YDB SDK](https://ydb.tech/docs/ru/reference/ydb-sdk/coordination.md?version=v25.4).

## Аналогичные системы {#similar-systems}

С помощью узлов координации YDB можно решать задачи, которые традиционно выполняются с помощью таких систем, как [Apache Zookeeper](https://zookeeper.apache.org/), [etcd](https://etcd.io/), [Consul](https://www.consul.io/) и других. Если в проекте используется YDB для хранения данных, а также одна из этих сторонних систем для координации, то переход на узлы координации YDB может сократить количество систем, которые необходимо эксплуатировать и поддерживать.