I am thinking about the choices one would have to support multiple 2-node
clusters. Assume that for some reason one needs to support multiple 2-node
This would mean they will have to figure out a way to run a third instance
of ZK server for each cluster somewhere to ensure that a ZK cluster is
available after a failure.
This works well if we have to run one or two 2-node clusters. However, what
if we have to run many 2-node clusters?
I have following options:
1. Find m machines to run the third instance of each cluster. Run n/m
instances of ZK on each machine.
2. Modify ZooKeeper server to participate in multiple clusters. This will
allow us to run y instances of third node where each instance will be part
of n/y clusters.
3. Run the third instance of ZK server required for the ith cluster on one
of the server on (i+1)%n cluster. Essentially, distribute the third instance
across the other clusters.
The pros and cons of each approach are fairly obvious. While I prefer the
third approach, I would like to check what everyone thinks about the second