Skip to main content

Вопрос

ClickHouse Keeper обеспечивает координацию репликации данных и выполнения распределённых DDL-запросов. ClickHouse Keeper совместим с ZooKeeper, но не всегда очевидно, почему вместо ZooKeeper стоит использовать ClickHouse Keeper. В этой статье рассматриваются некоторые преимущества Keeper.

Ответ

ClickHouse Cloud использует clickhouse-keeper в большом масштабе для тысяч сервисов в многопользовательской среде. Мы спроектировали и создали Keeper, чтобы избавиться от зависимости от реализации ZooKeeper на Java. ClickHouse Keeper устраняет многие широко известные недостатки ZooKeeper и предлагает ряд дополнительных улучшений, в том числе:
  • Снимки и журналы занимают значительно меньше места на диске благодаря более эффективному сжатию
  • По умолчанию нет ограничения на размер пакета и данных узла (в ZooKeeper это 1 МБ)
  • Нет проблемы переполнения zxid (в ZooKeeper из-за этого приходится перезапускать систему каждые 2 млрд транзакций)
  • Более быстрое восстановление после разделения сети благодаря использованию более совершенного протокола распределенного консенсуса
  • Для того же объема данных требуется меньше памяти
  • Его проще настроить, и при этом не нужно задавать размер кучи JVM или использовать собственную реализацию сборщика мусора
  • Несколько пользовательских команд в протоколе позволяют ускорить операции в таблицах ReplicatedMergeTree
  • Более широкое покрытие тестами Jepsen
Кроме того, служба поддержки ClickHouse отмечает резкое снижение числа проблем в кластерах у пользователей, которые используют clickhouse-keeper вместо ZooKeeper. Подробнее о настройке и запуске ClickHouse Keeper см. на странице документации Keeper.
Последнее изменение 3 июля 2026 г.