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;
>>> }
>>> }
>>> }
>>> *
>>
>
|