如下列举了运行和管理ZooKeeper ensemble的一些最佳实践:服务器
- ZooKeeper数据目录包含快照和事务日志文件。若是
autopurge
选项未启用,按期清理目录是一个好习惯。另外,管理员可能但愿保留这些文件的备份,具体取决于应用程序的须要。可是,因为ZooKeeper是一个复制服务,咱们只须要备份整个ensemble中一台服务器的数据便可。
- ZooKeeper使用Apache log4j做为其日志记录基础设施。随着日志文件的规模愈来愈大,建议使用内置的log4j特性来设置日志文件的
auto-rollover
功能。
- 客户端在其链接字符串中使用的ZooKeeper服务器列表必须与每一个ZooKeeper服务器所拥有的ZooKeeper服务器列表相匹配。若是列表不匹配,可能会出现奇怪的行为。
- 每一个Zookeeper服务器配置文件中的服务器列表应该与ensemble的其余成员一致。
- 如前所述,ZooKeeper事务日志必须在专用设备中进行配置。这对于从ZooKeeper得到最佳性能很是重要。
- 应该谨慎选择Java堆大小。在ZooKeeper服务器中不该该容许交换(swapping)。若是ZooKeeper服务器拥有至关高的内存(RAM),状况会更好。
- 系统监视工具(如
vmstat
)可用于监视虚拟内存统计信息,并根据应用程序的须要决定所需内存的最佳大小。不管如何,应该避免交换。