本人使用Apache Kafka的版本是0.7.2,Kafka默认的zookeeper.properties文件如下所示:
dataDir,clientPort的意义显而易见,就不用说了,对于maxClientCnxns选项,如果不设置或者设置为0,则每个ip连接zookeeper时的连接数没有限制。需要注意的是,设置maxClientCnxns的值时需要把kafka server的连接数考虑进去,因为启动kafka server时,kafka server也会连接zookeeper的。
例如,我把机器a的zookeeper.properties按下图所示来设置,其中maxClientCnxns=1
首先启动zookeeper,接着还是在机器a启动kafka server,server.properties的enable.zookeeper=true,如下图所示,kafka server也启动成功了
接下来在机器a启动Producer,如下面两幅图所示,重连多次都失败了
而zookeeper在标准输出提示我们超过配置文件里所设置的连接数了
因为我们设置maxClientCnxns=1,kafka server在机器a启动成功后,机器a连接zookeeper的连接数就是1了,如果接着在机器a启动producer,连接数就变成2了,超过maxClientCnxns的值,所以producer连接不上zookeeper.