Solr en cluster para Liferay 6.0.5 CE

Siguiendo con el post relacionado con SOLR y Liferay 5.2.3, hemos seguido haciendo unas pruebas esta tarde relacionadas con la posibilidad de disponer de un cluster de SOLR y como usarlo de manera sencilla desde un cluster de Liferay. SOLR propone como arquitectura de cluster un sistema basado en un master de escritura y n nodos de lectura sincronizados. Por tanto no se trata de un sistema activo-activo, sino más bien de un sistema activo-pasivo. Claramente el trabajo principal de un servidor de indexación es ofrecer los resultados de las búsquedas y desde es punto de vista la arquitectura propuesta por SOLR tiene bastante sentido. La pregunta es en este caso, ¿cómo usamos desde Liferay esta arquitectura de forma sencilla?

Para poder hacer uso de esta arquitectura vamos a montar dos nodos de Liferay cada uno con su plugin solr-web desplegado, y vamos a configurar los contextos de spring de los módulos de solr-web para que hagan uso de los nodos replicados a la hora de hacer las búsquedas y del nodo maestro para realizar las indexaciones. Con esta arquitectura cada nodo de Liferay dispondrá de un nodo esclavo de SOLR que se encargará de realizar las búsquedas y existirá un único nodo maestro de SOLR en el que ambos nodos de Liferay escribirán, este nodo maestro se encargará de realizar las tareas de sincronizado y de enviar la información de sincronización a los nodos esclavos.

Para realizar esta configuración, desde el punto de vista de Liferay basta con modificar el archivo solr-spring.xml, de cada nodo de liferay para indicarle cual es el nodo de búsqueda y cual es el nodo de indexación:

<bean id="com.liferay.portal.search.solr.server.BasicAuthSolrServer" class="com.liferay.portal.search.solr.server.BasicAuthSolrServer">
        <constructor-arg type="java.lang.String" value="http://solr-master.zylk.net:8090/solr" />
</bean>


<bean id="com.liferay.portal.search.solr.server.BasicAuthSolrServerSearcher" class="com.liferay.portal.search.solr.server.BasicAuthSolrServer">
       <constructor-arg type="java.lang.String" value="http://solr-slave.zylk.net:8090/solr" />
</bean>

 


Más adelante nos gustaría investigar la posibilidad de realizar, búsquedas distribuidas e indexaciones distribuidas con Liferay y SOLR... pero eso será más adelante
 
Links de interés:
  * http://wiki.apache.org/solr/SolrReplication
  * http://wiki.apache.org/solr/CollectionDistribution
  * http://www.mail-archive.com/solr-user@lucene.apache.org/msg06081.html
  * http://wiki.apache.org/solr/DistributedSearch
  * http://wiki.apache.org/solr/WritingDistributedSearchComponents
 

00

Más entradas de blog

Añadir comentarios