跳至主要内容

为什么推荐使用 ClickHouse Keeper 而不是 ZooKeeper?

ClickHouse Keeper 在 ZooKeeper 的基础上进行了改进,具有磁盘空间占用更小、恢复速度更快、内存消耗更少等特点,为 ClickHouse 集群提供更好的性能。

问题

ClickHouse Keeper 为数据复制和分布式 DDL 查询执行提供协调系统。ClickHouse Keeper 与 ZooKeeper 兼容,但可能不清楚为什么应该使用 ClickHouse Keeper 而不是 ZooKeeper。本文讨论了 Keeper 的一些优势。

答案

ClickHouse Cloud 在大规模环境中为数千个服务使用 clickhouse-keeper,这是一个多租户环境。我们设计和构建 Keeper 是为了消除对基于 Java 的 ZooKeeper 实现的依赖。ClickHouse Keeper 解决了 ZooKeeper 的许多众所周知的缺点,并进行了额外的改进,包括

  • 快照和日志由于更好的压缩,消耗的磁盘空间少得多
  • 默认数据包和节点数据大小没有限制(在 ZooKeeper 中为 1 MB)
  • 没有 zxid 溢出问题(它强制 ZooKeeper 中的每 2B 事务重启)
  • 由于使用更好的分布式共识协议,网络分区恢复速度更快
  • 对于相同的数据量,它使用的内存更少
  • 它更容易设置,并且不需要指定 JVM 堆大小或自定义垃圾收集实现
  • 协议中的一些自定义命令可以加快 ReplicatedMergeTree 表中的操作
  • Jepsen 测试的覆盖范围更大

此外,ClickHouse 支持团队观察到,在那些使用 clickhouse-keeper 而不是 ZooKeeper 的站点,集群问题大幅减少。

请查看 Keeper 文档页面,了解有关如何配置和运行 ClickHouse Keeper 的更多详细信息。

·2 分钟阅读
    © . This site is unofficial and not affiliated with ClickHouse, Inc.