Pular para o conteúdo principal

Pergunta

O ClickHouse Keeper fornece o sistema de coordenação para a replicação de dados e a execução de comandos de DDL distribuído. O ClickHouse Keeper é compatível com o ZooKeeper, mas pode não estar claro por que usar o ClickHouse Keeper em vez do ZooKeeper. Este artigo apresenta alguns dos benefícios do Keeper.

Resposta

ClickHouse Cloud usa clickhouse-keeper em larga escala para milhares de serviços em um ambiente multitenant. Projetamos e desenvolvemos o Keeper para eliminar nossa dependência da implementação do ZooKeeper baseada em Java. O ClickHouse Keeper resolve várias desvantagens bem conhecidas do ZooKeeper e traz melhorias adicionais, incluindo:
  • Snapshots e logs consomem muito menos espaço em disco graças a uma compressão mais eficiente
  • Não há limite para o tamanho padrão dos pacotes e dos dados dos nós (no ZooKeeper, é 1 MB)
  • Não há problema de overflow de zxid (no ZooKeeper, isso força uma reinicialização a cada 2B transações)
  • Recuperação mais rápida após partições de rede devido ao uso de um protocolo de consenso distribuído melhor
  • Usa menos memória para o mesmo volume de dados
  • É mais fácil de configurar e não exige especificar o tamanho do heap da JVM nem uma implementação personalizada de garbage collection
  • Alguns comandos personalizados no protocolo permitem operações mais rápidas em tabelas ReplicatedMergeTree
  • Maior cobertura nos testes do Jepsen
Além disso, o Suporte da ClickHouse observou uma queda significativa nos problemas de cluster em ambientes que usam clickhouse-keeper em vez de ZooKeeper. Confira a página de documentação do Keeper para mais detalhes sobre como configurar e executar o ClickHouse Keeper.
Última modificação em 19 de junho de 2026