2

我在我的 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);
    }

和弹簧配置文件:

<bean id="zooTester" class="com.abc.framework.cluster.ZKTester"/>

这是tomcat的启动日志:

...
**************WatchedEvent state:Disconnected type:None path:null
**************WatchedEvent state:Expired type:None path:null
...

我的使用有什么错误吗?

谢谢

LJW

4

1 回答 1

0

从 ZooKeeper 的角度来看,用法是正确的。您可以创建到服务器的多个连接。

问题可能是服务器上存在的一个名为的属性maxClientCnxns,它限制了来自单个 IP 地址的连接。有关更多详细信息,请参阅maxClientCnxns 上的 Zookeeper 文档

问候, 克里斯蒂安

于 2013-03-27T15:44:54.993 回答