在生产环境中运行 zookeeper 需要考虑的关键点。

https://docs.confluent.io/platform/current/zookeeper/deployment.html

硬件层面

内存

Zookeeper Cluster 中的每个 Zookeeper 节点在任何时间都将所有 znode 内容保存在内存中。在生产用例中,至少应该有 4 GB 的 RAM 专供 Zookeeper 使用。此外必须要注意的是,Zookeeper 对 SWAP 很敏感,任何运行 Zookeeper 服务器的主机都应避免 SWAP。

CPU

一般来说,Zookeeper 并不会占用大量 CPU 资源。

磁盘

磁盘性能对于维护健康的 ZooKeeper 集群至关重要。强烈建议使用固态驱动器 (SSD),因为 ZooKeeper 必须具有低延迟的磁盘写入才能实现最佳性能。可以通过配置 autopurge.purgeIntervalautopurge.snapRetainCount 来自动清理 ZooKeeper 数据并降低维护开销。

JVM 优化

Zookeeper 运行在 JVM中,为了避免垃圾回收造成延迟,通常建议设置堆内存为1GB。

配置选项

以下罗列了在生产环境中运行 Zookeeper Cluster 需要特别考虑的参数。最理想的情况,dataDir和 dataLogDir 所指定的目录应该是在不同的设备中,这减少了随机读写和顺序写入之间的争执。

转载请注明出处