Dedicated machines are a good idea. The main thing is to make sure that ZK always has IOPS available for transaction log writes. That's easy to ensure when each ZK instance has its own hardware. The standard practice, as far as I know, is to have 3 physical boxes spread among racks/datacenters/continents as HA needs dictate.
Sharing a machine between Solr and ZK is definitely not ideal. Instead of Solr machines and ZK machines, now you have Solr machines and Solr+ZK machines. It adds management overhead because now you have to take ZK into account while administering your Solr cluster, and unless you give ZK its own disk it will have to compete with Solr for I/O. On Jun 10, 2014, at 2:58 AM, Gili Nachum <gilinac...@gmail.com> wrote: > Is there a recommended ZooKeeper topology for production Solr environments? > > I was planning: 3 ZK nodes, each on its own dedicated machine. > > Thinking that dedicated machines, separate from Solr servers, would keep ZK > isolated from resource contention spikes that may occur on Solr. Also, if a > Solr machine goes down, there would still be 3 ZK nodes to handle the event > properly. > > If I want to save on resources, placing each ZK instance on the same box as > Solr instance in considered common practice in production environments? > > Thanks!