hadoop-zookeeper-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Patrick Hunt <ph...@apache.org>
Subject Re: When session expired event fired?
Date Mon, 08 Feb 2010 23:02:57 GMT
Here's one that I know of that's open - LinkedIn's Norbert
http://wiki.github.com/rhavyn/norbert/

Patrick

neptune wrote:
> 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
View raw message