On 5/2/2019 11:47 PM, Salmaan Rashid Syed wrote:
I am using Solr 7.6 in cloud mode with external zookeeper installed at ports
2181, 2182, 2183. Currently we have only one server allocated for Solr. We are
planning to move to multiple servers for better sharing, replication etc in
near future.
Now the issue is that, our organisation has data indexed for different clients
as separate collections. We want to uniquely access, update and index each
collection separately so that each individual client has access to their
respective collections at their respective ports. Eg:— Collection1 at port
8983, Collection2 at port 8984, Collection3 at port 8985 etc.
This is not something you can do with a single instance of Solr.
I have two options I guess, one is to run Solr in cloud mode with 4 nodes (max
as limited by Solr) at 4 different ports. I don’t know how to go beyond 4
nodes/ports in this case.
There are no limits to the number of nodes. I know people are running
SolrCloud clusters with hundreds of nodes. And there might be some out
there with thousands ... although if those exist, they're really pushing
the limits.
The other option is to run Solr as service and create multiple copies of Solr folder
within the Server folder and access each Solr at different port with its own
collection as shown by https://www.youtube.com/watch?v=wmQFwK2sujE
<https://www.youtube.com/watch?v=wmQFwK2sujE>
If you have multiple Solr nodes in a single cluster, you can access any
collection from any node. This will probably present a security problem
for you. Even if the receiving node doesn't have any of the
collection's data, SolrCloud will proxy the connection over to the nodes
that DO have that data.
If you give each Solr node (instance) a different chroot on its zkHost
string, then each one would be a completely separate cluster from all
the others, and you can run them all in one zookeeper ensemble. Each
one would have zkHost strings that look something like this:
zk1.example.com:2181,zk2.example.com:2181,zk3.example.com/solr1
zk1.example.com:2181,zk2.example.com:2181,zk3.example.com/solr2
zk1.example.com:2181,zk2.example.com:2181,zk3.example.com/solr3
zk1.example.com:2181,zk2.example.com:2181,zk3.example.com/solr4
You'll need to find the section in the documentation that talks about
creating a chroot in ZK.
I think that would give you what you're after.
It's probably easiest to set up each Solr instance in its own directory,
not try to run multiple services out of one installation directory. The
entire extracted archive is less than 200MB ... tiny by modern standards.
Thanks,
Shawn