Сервисы координации в Managed Service for ClickHouse®
Сервис координации — это сервис, который управляет согласованностью между узлами кластера, обеспечивает репликацию данных и выполнение распределенных DDL-запросов.
В Managed Service for ClickHouse® доступны следующие сервисы координации:
- ClickHouse® Keeper встроенный;
- ClickHouse® Keeper на отдельных хостах;
- ZooKeeper.
Важно
После выбора сервиса координации сменить или отключить его невозможно. Хосты обоих сервисов учитываются в расчете использованной квоты ресурсов
Выбор сервиса координации
Выбор между сервисами ClickHouse® Keeper зависит от сценария использования:
- Встроенный ClickHouse® Keeper размещается на хостах ClickHouse® и подходит для тестирования или приложений с низкой нагрузкой.
- ClickHouse® Keeper на отдельных хостах подходит для стабильных версий приложений и приложений с высокой нагрузкой.
ZooKeeper также подходит для стабильных версий приложений и приложений с высокой нагрузкой. Однако ZooKeeper — это устаревающая технология, поэтому вместо него рекомендуется использовать ClickHouse® Keeper на отдельных хостах. В дальнейшем ZooKeeper станет недоступен для новых кластеров.
ClickHouse® Keeper
ClickHouse® Keeper — решение ClickHouse®, которое обеспечивает согласованность чтения и записи данных. ClickHouse® Keeper реализует совместимый с ZooKeeper клиент-серверный протокол, поэтому для взаимодействия с ним можно использовать любой стандартный клиент ZooKeeper. Однако снимки, журналы и межсерверный протокол ClickHouse® Keeper несовместимы с ZooKeeper, поэтому использование хостов ClickHouse® Keeper и ZooKeeper в одном кластере невозможно.
Подробнее о ClickHouse® Keeper читайте в документации ClickHouse®
В Managed Service for ClickHouse® сервис координации ClickHouse® Keeper доступен в следующих режимах:
-
ClickHouse Keeper (встроенный) — ClickHouse® Keeper размещается на хостах ClickHouse®. Для обеспечения репликации кластер должен состоять из трех или более хостов ClickHouse®.
-
ClickHouse Keeper (на отдельных хостах) — ClickHouse® Keeper размещается на отдельных хостах. Для обеспечения репликации кластер должен состоять из двух и более хостов ClickHouse®, а также включать три или пять хостов ClickHouse® Keeper.
Этот режим используется по умолчанию в консоли управления
при создании кластера из двух и более хостов ClickHouse® на шард или при настройке сервиса координации.
Включить сервис координации ClickHouse® Keeper можно:
- при создании кластера;
- во время изменения кластера, если кластер создан без сервиса координации.
После включения ClickHouse® Keeper он не может быть отключен.
ZooKeeper
ZooKeeper — один из первых сервисов координации с открытым исходным кодом. В отличие от ClickHouse® Keeper он обеспечивает только согласованность записи данных, но не чтения.
Подробнее о ZooKeeper читайте в документации ZooKeeper
Сервис координации ZooKeeper размещается на отдельных хостах. Для обеспечения репликации в кластере Managed Service for ClickHouse® должно быть три или пять хостов ZooKeeper.
ZooKeeper используется по умолчанию при создании кластера Managed Service for ClickHouse® в Yandex Cloud CLI, Terraform и API.
Если вы создаете кластер из двух и более хостов ClickHouse® на шард и в сети кластера есть подсети в каждой зоне доступности, три хоста ZooKeeper будут добавлены автоматически, по одному в каждую подсеть. Если подсети есть только в некоторых зонах доступности, настройки хостов ZooKeeper нужно указывать вручную.
Минимальное количество ядер для одного хоста ZooKeeper зависит от суммарного количества ядер хостов ClickHouse®:
| Суммарное количество ядер хостов ClickHouse® | Минимальное количество ядер для одного хоста ZooKeeper |
|---|---|
| Менее 48 | 2 |
| 48 и более | 4 |
Класс хостов и размер хранилища ZooKeeper можно изменить при изменении настроек кластера. Изменение настроек ZooKeeper и подключение к его хостам не поддерживается.
Включить сервис координации ZooKeeper можно:
- при создании кластера;
- во время изменения кластера, если кластер создан без сервиса координации.
После включения ZooKeeper он не может быть отключен.
ClickHouse® является зарегистрированным товарным знаком ClickHouse, Inc