ZooKeeper отключает несколько соединений от одного хоста
Я использую 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
1 ответ
С точки зрения ZooKeeper использование является правильным. Вы можете создать несколько подключений к серверу.
В чем может быть проблема, это свойство называется maxClientCnxns
который присутствует на сервере и ограничивает соединения с одного IP-адреса. См. Документацию Zookeeper на maxClientCnxns для получения дополнительной информации.
С уважением, Кристиан