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