dynamic - ZooKeeper - adding peers dynamically? -


i'm new zookeeper. need.

i've network of peers.

  1. at t=t_1 -> [peer-1 (leader), peer-2] peer-1 master , clients connect node.

  2. at t=t_2 -> [peer-1 (leader), peer-2, peer-3] @ later time peer-3 joins group. possible add peer-3 list of zookeeper servers "dynamically" ( i.e., without restarting zookeeper on peer-1 ) ?

  3. at t=t_3 -> [peer-3 (leader), peer-4] after while both peer-1 , peer-2 leave group (e.g., die or switched off.) assuming there way dynamically add peer-3 , peer-4 group peer-3 becomes leader , client requests send peer-3.

are there other options can use apart using zookeeper this.

thanks.

at moment, can't dynamically change configuration of zookeeper cluster without restarting. there open issue fix this, zookeeper-107. paper describing cluster membership algorithm quite interesting, , can found here.

you can change configuration of cluster restarting server nodes 1 @ time. example, if cluster has servers a,b,c, , want replace server c d, can like,

  • bring down c
  • bring d, it's peer list a,b,d
  • take down b
  • change b's peer list a,b,d
  • bring b
  • take down change a's peer list a,b,d
  • bring a
  • change client configuration of clients point a,b,d

at t=t_1, have cluster 2 zookeeper nodes. quite brittle, if either node goes down, not able establish quorum (floor(n / 2) + 1), , cluster unavailable. zookeeper clusters odd numbers.

i'm not sure trying when say,

peer-3 becomes leader , client requests send peer-3.

you can't specify node in zookeeper cluster leader, nodes elect leader, , leadership change nodes go , down. well, clients typically don't connect leader, clients given list of machines in cluster, , connect randomly one, reconnecting if server connected goes down. can set leaderserves option specify leader not server client connections.


Comments

Popular posts from this blog

JQuery Autocomplete without using label, value, id -

c++ - Accessing inactive union member and undefined behavior? -

JAVA - what is the difference between void and boolean methods? -