나는 ZooKeeper를 사용하는 응용 프로그램을 작성 중이며 자주 발생하는 이벤트는 CONNECTIONLOSS
입니다. 2000
을 내 틱 시간으로 사용하고 있습니다. 12000
을 세션 시간 초과로 설정하고 응용 프로그램을 Amazon EC2에서 실행하고 있습니다. 나는 그것을 사용하기 전에 ZooKeeper가 연결되기를 기다리고 있다고 믿습니다.빈번한 ZooKeeper CONNECTIONLOSS 이벤트가 있습니까?
ZooKeeper zk=new ZooKeeper(connectionString, sessionTimeout, new Watcher() {
@SuppressWarnings("deprecation")
public void process(WatchedEvent event) {
switch(event.getState()) {
case SyncConnected:
case ConnectedReadOnly:
// We're connected, count down...
ready.countDown();
break;
case SaslAuthenticated:
// Life is good here. Nothing to do...
break;
case AuthFailed:
case Disconnected:
case Expired:
case NoSyncConnected:
case Unknown:
default:
LOGGER.error("ZooKeeper event: "+event.getState());
break;
}
}
});
boolean ok;
try {
ok = ready.await(15, TimeUnit.SECONDS);
}
catch(InterruptedException e) {
throw new InterruptedIOException();
}
if(ok == false)
throw new IOException("Failed to connect to ZooKeeper");
왜 사육사 이러한 가짜 CONNECTIONLOSS
이벤트를 받고 수 있습니다 : 여기에 내가 그렇게하기 위해 사용하고 코드인가?
여전히 20000 또는 40000 시간 초과가 발생합니까? –
문제를 결정했습니다. 나는 큰 요청을하고 있었고 제대로 작동하려면'jute.maxbuffer'를 업데이트해야했습니다. 제안 해 주셔서 감사합니다! – sigpwned