cancel
Showing results for 
Search instead for 
Did you mean: 

Single Solr isntance to track multiple alfresco servers

ayubalfresco
Champ in-the-making
Champ in-the-making
Hi,

Could some please explain if its possible to track indexes of multiple alfresco servers which are in cluster (shared content store) using a single Solr server ?

I have created Alfresco cluster using share contentstore. As best practice I have stored the indexes on inidiviual alfresco servers.
Each alfresco server has a dedicated solr server to track the indexes. Instead of using two solr servers can I use a single Solr server to track indexes of multiple Alfresco servers which are in cluster ?

Thanks
Ayub
9 REPLIES 9

mrogers
Star Contributor
Star Contributor
Yes you can.    However you will need to consider what happens if the node with the solr server is not available.  

ayubalfresco
Champ in-the-making
Champ in-the-making
Could you please elaborate (with an example) more on how we can achieve this ?

Since the below properties are hardwired in archive-SpacesStore and workspace-SpacesStore of Solr

data.dir.root=/opt/alfresco/alf_data/solr
data.dir.store=archive/SpacesStore

What would be your suggestion to opt when the Solr node goes down ?

ayubalfresco
Champ in-the-making
Champ in-the-making
Any clues please ?

Alfresco Enterprise offers an add-on for deploying Solr on a separate server from the Alfresco server itself, so I'm assuming that it's possible in community as well.  If your Alfresco servers are clustered, then they can utilize one common solr server, or if there's a need for high-availability, I believe that you can cluster Solr as well.  Here is a link with information for installing Solr with Alfresco
http://docs.alfresco.com/4.1/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fsolr-webapp...


I hope this helps.

fstnboy
Champ on-the-rise
Champ on-the-rise
Hi ayubalfresco,

Since the Alfresco nodes are clustered the caches are replicated between them. I guess what you can do is put a load balancer in front of the Alfresco nodes and point both of them to the same Solr instance. So when Solr makes a query to track Alfresco it will hit the load balancer and will go to the available node.

When there's an update in the either of the nodes, they will update the Solr indexes.

Now, the problem is that there's a single point of failure with the indexes, if Solr goes down then the search in Alfresco won't work.

This is a problem Alfresco needs to solve and many people is struggling with.

mrogers
Star Contributor
Star Contributor
You also put a load balancer in front of the solr nodes so you can have multiple instances of solr.  So if one solr node fails or is shut down then the request is routed to the other.  

That's how alfresco cloud is configured.

The extra "trick" used on cloud is that each solr node has a private (not customer facing) instance of alfresco for feeding solr.

fstnboy
Champ on-the-rise
Champ on-the-rise
So, if you let's say 2 Solr instances and 2 customer facing Alfresco instances. then you'd have 4 alfresco nodes in the cluster, am I right?

That's helpful, but could be pricey for a client…

ayubalfresco
Champ in-the-making
Champ in-the-making
Thank you for the update. Could you please confirm if the indexs will be saved on the solr server right ?

mrogers
Star Contributor
Star Contributor
Indexes are stored wherever you put them!

See solrcore.properties in particular the data.dir.root property.