I'm definitely not trying to predict the future, only trying to react in the case of an inconsistent cluster and cover the pathological cases where ZooKeeper itself is down. The code will also rejoin the cluster if it reappears. This is what Curator attempts to do. It provides a framework for managing the underlying ZooKeeper connection. You can then write recipes (and Curator comes with many) that take advantage of connection management. There are a bunch of folks using it from Scala (and Clojure for that matter). So, there should be plenty of examples.
-JZ From: Dan Hopkins [email protected] Reply: [email protected] [email protected] Date: March 24, 2014 at 12:27:32 PM To: [email protected] [email protected] Cc: Henry Robinson [email protected] Subject: Re: Basic client question Yes, this is a great point. I'm definitely not trying to predict the future, only trying to react in the case of an inconsistent cluster and cover the pathological cases where ZooKeeper itself is down. The code will also rejoin the cluster if it reappears. Curator's Framework and Client utils seem like the right tool. My only hesitency initially was poor Scala integration, but a thin shim ought to be good enough. Thanks again Camille & Henry, Dan On Mon 24 Mar 2014 11:06:55 AM MDT, Henry Robinson wrote: > It's also important to realise that 'never' is a property that's impossible > to detect. The client has no idea if a failure is permanent, because that > would require the ability to see into the future. > > So the best you can do is guess, somehow, and as Camille says timeouts are > the best blunt instrument we have. > > > On 24 March 2014 09:48, Dan Hopkins <[email protected]> wrote: > >> Camille, >> I'm trying to figure out what timeout you're referring to? I'm using >> zkClient that ships with ZooKeeper and the only timeout I can see to >> configure is the "session timeout." Does this timeout work even if you >> never hear back from any server? >> >> Thanks, >> Dan >> >> >> On 03/24/2014 10:31 AM, Camille Fournier wrote: >> >>> So, client will never be able to reach the server again? The client that >>> you use (and we generally recommend you use an existing client library >>> like >>> Curator or even zkClient instead of writing your own) should have some >>> sort >>> of timeout configured so that if it gets disconnected and can't reach the >>> server within some period of time it gives up. >>> >>> C >>> >>> >>> On Mon, Mar 24, 2014 at 12:01 PM, Dan Hopkins <[email protected]> >>> wrote: >>> >>> As a beginner using zookeeper I was wondering if anyone could help me >>>> understand how the java ZooKeeper client handles a permanent disconnect >>>> from the cluster. I'm curious because as I read the FAQ we can get a >>>> Session expiration if we ever connect to the server but I'm not sure what >>>> to do if I can never connect again. >>>> >>>> Is there a different exception thrown after a the client has detected >>>> permanent failure? >>>> >>>> I'm currently using Zk 3.3.4 in case the behavior has changed. >>>> >>>> Thanks for any pointers, >>>> Dan >>>> >>>> -- >>>> Dan Hopkins | Programmer >>>> e: [email protected] >>>> >>>> Be Victorious >>>> >>>> >>>> >> -- >> Dan Hopkins | Programmer >> e: [email protected] >> >> Be Victorious >> >> > > -- Dan Hopkins | Programmer e: [email protected] Be Victorious
