Open IT Experts for Enterprise

Zylk empresa de desarrollo de ecommerce

Pruebas con Alfresco 3 en cluster

Cesar Capillas
Cesar Capillas

Con motivo del último curso de administración de Alfresco que hemos
impartido, preparamos un taller relativo a la puesta en marcha de
cluster de Alfresco, con dos nodos. El
esquema es similar al expuesto en la wiki de Alfresco
, con dos
instancias de Alfresco balanceadas por un Apache via mod-balancer y
mod_jk. Las dos instancias estaban en la misma máquina, lo cual
dificultó la configuración debido a que hubo que cambiar numerosos
puertos para el nodo 2, desde los puertos de los conectores http, ajp
y demás hasta los del rmi. Esta parte hubiese sido más sencilla con
dos máquinas virtuales, una con cada nodo, por ejemplo.

En la prueba de concepto se recogían las principales problemáticas:

  • Utilizamos un almacén físico común para el repositorio. Además
    probamos la característica de replicación del almacén de contenido
    de los nodos en local: En nuestra prueba la simulamos con una
    replicación a dos almacenes locales de contenidos.
  • En el esquema, utilizamos una base de datos común a ambas
    instancias, es decir, no se protege contra errores de la base de datos.
  • El balanceador por su parte reduce la carga de los contenedores de
    servlets (tomcat) y proporciona redundancia en caso de fallos. Antes
    de poner el balancer, probamos con dos navegadores sobre los nodos
    correspondientes subiendo contenidos en un nodo y refrescando en el
    otro y buscando en el otro.
  • Replicamos la sesión del cliente y las cachés con ehcache y
    jgroups: Es necesario activar ehcache-custom.xml en el directorio de
    extensiones, y jgroups en alfresco-global.properties.
  • Sincronizamos los índices de Lucene: El almacén de índices local
    de cada nodo y el cron de sincronización se definen en alfresco-global.properties.

Pruebas con Alfresco 3 en cluster

 

Os dejo la estructura de directorios de nuestro esquema:

cesar@baco /opt/cluster $ tree -d -L 2
.
|-- alfresco1
|   |-- bin
|   |-- index
|   |-- index-backup
|   |-- licenses
|   `-- tomcat
|-- alfresco2
|   |-- bin
|   |-- index
|   |-- index-backup
|   |-- licenses
|   `-- tomcat
`-- store
    |-- audit.contentstore
    |-- contentstore
    |-- contentstore.deleted
    `-- oouser

A continuación, un ejemplo del archivo de configuración global de
Alfresco, para el nodo 1. Para el resto de los nodos se necesita una
config similar y si están en la misma máquina hay que cambiar los puertos.

dir.root=/opt/cluster/store
dir.indexes=/opt/cluster/alfresco1/index
dir.indexes.backup=/opt/cluster/alfresco1/index-backup

# Cluster
alfresco.cluster.name=testcluster
index.recovery.mode=AUTO

# Jgroups
alfresco.jgroups.defaultProtocol=TCP
alfresco.tcp.initial_hosts=baco.zylk.net[7800],baco.zylk.net[7810]

# Hibernate cache
hibernate.cache.use_second_level_cache=false

# Lucene
index.tracking.cronExpression=0/5 * * * * ?
index.recovery.mode=AUTO
index.tracking.reindexLagMs=10000
index.tracking.maxTxnDurationMinutes=10
index.recovery.maximumPoolSize=5
index.tracking.maxTransactionsPerLuceneCommit=100

#
# Sample database connection properties
#-------------
db.name=alfresco32ee
db.username=alfresco
db.password=alfresco
db.host=localhost
db.port=3306

#
# External locations
#-------------
ooo.exe=/usr/bin/soffice
img.root=/usr
img.exe=/usr/bin/convert
swf.exe=/usr/bin/pdf2swf

#
# MySQL connection
#-------------
db.driver=org.gjt.mm.mysql.Driver
db.url=jdbc:mysql://${db.host}:${db.port}/${db.name}

#
# Disable CIFS and FTP
#
cifs.enabled=false
ftp.enabled=false


Las pruebas son Alfresco Enterprise 3.2, ya que la
característica de jgroups no esta presente para la Community.

Es útil en la preparación trazar con log4j para ehcache y jgroups.

log4j.logger.org.alfresco.repo.jgroups=DEBUG
log4j.logger.org.alfresco.enterprise.repo.cache.jgroups=DEBUG

log4j.logger.net.sf.ehcache.distribution=DEBUG
log4j.logger.org.alfresco.repo.node.index.IndexTransactionTracker=DEBUG
log4j.logger.org.alfresco.repo.node.index.AVMRemoteSnapshotTracker=DEBUG


Enlaces:

La imagen pertenece a:

Si te ha parecido interesante comparte este post en RRS

Facebook
LinkedIn
Telegram
Email

Leer más sobre temas relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *