hadoop-zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From neptune <opennept...@gmail.com>
Subject Re: When session expired event fired?
Date Mon, 08 Feb 2010 22:59:51 GMT
Thanks for your quick answer.
I will make cluster member ship service using zookeeper.
If a node in a cluster can't connect to zookeeper cluster, the node killed
by oneself (like google bigtables' tabletserver).
If no session expired, client check disconnected time.
Any idea or usage for cluster membership service using zookeeper?

Thanks.

2010/2/9 Mahadev Konar <mahadev@yahoo-inc.com>

> Hi,
>  a zookeeper client does not expire a session until and unless it is able
> to
> connect to one of the servers. In your case if you kill all the servers,
> the
> client is not able to connect to any of the servers and will keep trying to
> connect to the three servers. It cannot expire a session on its own and
> needs to hear from the server to know if the session is expired or not.
>
> Does that help?
>
> Thanks
> mahadev
>
>
> On 2/8/10 2:37 PM, "neptune" <openneptune@gmail.com> wrote:
>
> > Hi all.
> > I have a question. I started zookeeper(3.2.2) on three servers.
> > When session expired event fired in following code?
> > I expected that if client can't connect to server(disconnected) for
> session
> > timeout, zookeeper fires session expired event.
> > I killed three zookeeper server sequentially. Client retry to connect
> > zookeeper server. Never occured Expired event.
> >
> > *class WatcherTest {
> >   public static void main(String[] args) {
> >     (new **WatcherTest*()).exec();
> > *  }
> >
> >   private WatcherTest() throws Exception {
> >     zk = new ZooKeeper("server1:2181,server2:2181:server3:2181", 10 *
> 1000,
> > this);
> >   }
> >   private void exec() {
> >     while(ture) {
> >       //do something
> >     }
> >   }
> >   public void process(WatchedEvent event) {
> >     if (event.getType() == Event.EventType.None) {
> >       switch (event.getState()) {
> >       case SyncConnected:
> >         System.out.println("ZK SyncConnected");
> >         break;
> >       case Disconnected:
> >         System.out.println("ZK Disconnected");
> >         break;
> >       case Expired:
> >         System.out.println("ZK Session Expired");
> >         System.exit(0);
> >         break;
> >       }
> >     }
> > }
> > *
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message