Сервисы координации
Чтобы организовать репликацию данных и выполнение распределенных DDL-запросов (ON CLUSTER
) в ADQM, при создании кластера необходимо настроить и подключить один из сервисов координации:
-
Apache ZooKeeper — известный сервис с открытым исходным кодом для синхронизации и координации распределенных систем.
ZooKeeper реализован на языке Java, имеет простую и эффективную модель данных. Используемый в ZooKeeper алгоритм координации ZAB (ZooKeeper Atomic Broadcast) обеспечивает линеаризуемость операций записи, но не гарантирует линеаризуемость операций чтения, так как каждый узел ZooKeeper выполняет чтение локально.
-
ClickHouse Keeper — альтернативный сервис координации, предоставляющий совместимый с ZooKeeper клиент-серверный протокол.
ClickHouse Keeper реализован на языке C++ и имеет ту же модель данных, что и ZooKeeper. Используемый алгоритм RAFT предоставляет лучшие гарантии согласованности по сравнению с ZooKeeper — опционально позволяет достичь линеаризуемости чтения. ClickHouse Keeper можно использовать как равноценную замену ZooKeeper, установив его на отдельные серверы, или как внутреннюю часть сервера ClickHouse.
Общие рекомендации по выбору сервиса координации в зависимости от требований к системе:
-
Для тестовых или небольших кластеров можно использовать внутренний ClickHouse Keeper, установленный на тех же серверах, что и ClickHouse.
-
Для реальных больших систем рекомендуется устанавливать ClickHouse Keeper или ZooKeeper на отдельные серверы.
-
Если у вас уже есть настроенный кластер ZooKeeper, можно использовать его для кластера ADQM.
ВАЖНО
|