我在我的Web应用程序中使用ZooKeeper并发现了一个非常奇怪的问题:如果我将两个应用程序(都使用zookeeper)部署到同一个tomcat,那么当一个应用程序中的ZooKeeper将在tomcat启动时无法解释。
以下是我的代码,非常简单:
public class ZKTester implements InitializingBean, Watcher {
private ZooKeeper hZooKeeper;
public void afterPropertiesSet() throws Exception {
hZooKeeper = new ZooKeeper("localhost:2181", 300000, this);
}
public void process(WatchedEvent event) {
System.out.println("**************" + event);
}
和spring配置文件:
<bean id="zooTester" class="com.abc.framework.cluster.ZKTester"/>
这是tomcat的启动日志:
...
**************WatchedEvent state:Disconnected type:None path:null
**************WatchedEvent state:Expired type:None path:null
...
我的使用是否有错误?
由于
L.J.W
答案 0 :(得分:0)
从ZooKeeper的角度来看,用法是正确的。您可以创建与服务器的多个连接。
可能存在的问题是名为maxClientCnxns
的属性,它存在于服务器上并限制来自单个IP地址的连接。有关详细信息,请参阅Zookeeper Documentation on maxClientCnxns。
此致,基督徒