I am proposing that the Collection API be consistent with SolrJ (CloudSolrClient). SolrJ's design philosophy uses the list of zookeeper addresses to gather cloud information, and then intelligently sends the actual request to the single solr node that is best able to serve it. This information includes what solr nodes are alive, and what collections/cores reside, and where and whom the current leader is.
Why can't the Collection API or something else expose this functionality. Otherwise, you have to use a load balancer (software or hardware) to present a single point of access for your code, and let it forward the request to one of the solr nodes. It should be able to track which ones are alive and failover to the other(s). I really don't think this is necessary, because Solr can already do this, internally. Maybe an intelligent way of submitting queries to the cloud, without checking the cloud state is difficult, but the code already exists. Thank you Will McGinnis