| 
     << Click to Display Table of Contents >> Zookeeper环境要求 | 
    
    
     ![]() ![]()  
     | 
  
VooltDB部署支持单节点和集群部署两种方式,使用集群部署可以提高系统高可用能力。如果部署VooltDB集群,则需要提前部署一套可用的ZooKeeper集群,用于管理调度各VooltDB节点。
Zookeeper版本要求3.4.9及以上,单个Zookeeper安装目录建议预留空间100G以上,Zookeeper对硬件I/O要求较高,建议使用固态硬盘单独部署。ZooKeeper集群的规划和部署建议满足Zookeeper高可用,部署奇数台服务器。VooltDB需要使用一套独立的Zookeeper集群,为VooltDB提供服务,建议不要和其他的服务共用Zookeeper集群。
为了VooltDB集群稳定高效的运行,需要在Zookeeper的配置文件zoo.cfg中增加如下的配置项:
配置项  | 
值  | 
说明  | 
autopurge.purgeInterval=  | 
1  | 
设置多少小时清理一次交互日志  | 
autopurge.snapRetainCount=  | 
10  | 
zookeeper也会将内存中的数据作为snapshot保存下来,该配置可以设置保留多少个snapshot  | 
snapCount=  | 
3000000  | 
每进行snapCount次事务日志输出后,触发一次快照(snapshot), 此时,ZK会生成一个snapshot.*文件,同时创建一个新的事务日志文件log.*。默认是100000  | 
leaderServes=  | 
yes  | 
默认情况下,Leader是会接受客户端连接,并提供正常的读写服务。但是,如果你想让Leader专注于集群中机器的协调,那么可以将这个参数设置为no,这样一来,会大大提高写操作的性能。  | 
standaloneEnabled=  | 
false  | 
Zookeeper使用集群模式  | 
maxSessionTimeout=  | 
60000000  | 
Session超时时间限制  | 
preAllocSize=  | 
131072  | 
预先开辟磁盘空间,用于后续写入事务日志。  | 
tickTime=  | 
10000  | 
ZK中的一个时间单元。ZK中所有时间都是以这个时间单元为基础,进行整数倍配置的。  | 
syncLimit=  | 
10  | 
在运行过程中,Leader负责与ZK集群中所有机器进行通信,例如通过一些心跳检测机制,来检测机器的存活状态。如果L发出心跳包在syncLimit之后,还没有从F那里收到响应,那么就认为这个F已经不在线了。  | 
initLimit=  | 
10  | 
Follower在启动过程中,会从Leader同步所有最新数据,然后确定自己能够对外服务的起始状态。  |