A single DNS name can map to several IP addresses, and this complete list of addresses is available to any DNS client.
If the Zookeeper client were to interpret DNS names so as to allow multiple IP addresses from one DNS name, a single DNS name in the Zookeeper client config to represent an arbitrary list of servers, so that the list of servers could be changed centrally with no client config changes. This is a widely supported standard feature of DNS. For example, we use this at Quantcast to power the second most requested URL on the Internet, and we get nice clean random distribution of client requests to IP addresses despite all the weird DNS servers, proxies, and browsers out there. Here's an example where edge.quantserve.com translates into 8 different server IPs. Web browsers select one of these at random. Zookeeper should do the same to simplify client configurations. $ nslookup edge.quantserve.com Server: 192.168.1.1 Address: 192.168.1.1#53 Non-authoritative answer: edge.quantserve.com canonical name = map-js.quantserve.com.akadns.net. map-js.quantserve.com.akadns.net canonical name = anycast-americas.quantserve.com.akadns.net. Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.58 Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.63 Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.37 Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.39 Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.23 Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.46 Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.24 Name: anycast-americas.quantserve.com.akadns.net Address: 64.94.107.20
