Yes, Zookeeper is running in our application (Cassandra is as well, in the same JVM). We do this because we're building a product that will be deployed by customers with little to no distributed systems admin experience, and we only want them to have to manage a single process. We have not yet seen the need for knowing about the status of a particular application node independent of that node's Zookeeper status.

On 04/12/2011 01:12 PM, Ted Dunning wrote:
Does this mean that you are running ZK in your application?

My own feeling is that this is a bad practice. It shouldn't cause your problem, but it is hard to make guarantees about totally correct operation in an arbitrarily shared JVM.

In my own designs, I avoid collocating ZK with my application because I like to interrogate ZK about application status and "down" is a valid status which I would like to know about. I can't see that in ZK if it doesn't survive the demise of the application.

On Tue, Apr 12, 2011 at 12:33 PM, Jeremy Stribling <[email protected] <mailto:[email protected]>> wrote:

    * We manage node membership dynamically, and our application
    restarts the ZooKeeperServer classes whenever a new node wants to
    join (without restarting the entire application process).  This is
    why you'll see messages like the following in node1.0x4-0x5.log
    before a new election begins:

    2011-04-11 21:16:00,762 4804 [QuorumPeer:/0.0.0.0:2888
    <http://0.0.0.0:2888>] INFO
    org.apache.zookeeper.server.quorum.Learner  - shutdown called


Reply via email to