I'm currently using a SolrCloud setup with 3 nodes. The setup hosts about 50 (small) collections of a few thousand documents each. In the past, I've used collections with replicationFactor = 3. So each node has a replica of all the collections.
But now I want to add an extra node. Now, new collections can be created on server 1, 2 and 4. Or on 1, 3 and 4. I'm not specifying specific nodes at creation time. My problem is that I cannot use each node in the cluster to query my collections. If a collection is not hosted on node 2, I cannot use node 2 to query that collection. Is that normal behavior? Does that mean that I'll have to keep a list of nodes per collection (or query and cache it from ZooKeeper) and use that in my client applicatio?
Currently I'm using one of the nodes as a fixed IP in my client application. This node contains all the collections, because new collections are always created on that node. But when it goes down, there is no other node that contains all the collections.