Cluster Liferay EE

La mise en cluster de Liferay n’est jamais une étape facile dans un projet, pas que l’opération soit compliquée, mais la configuration n’est pas très bien documentée et n’est pas effectuée tous les jours.

Donc voici un aide mémoire pour la mise en place du cluster Liferay 6.2 EE en mode unicast, le plus compliqué.

Après avoir déployé vos instances Liferay, avec connexion à une base de données centralisée, il faut:

  • Créer un fichier tcp.xml à partir de celui extrait du fichier jgroups.xml et y ajouter l’attribut singleton_name= »liferay »
    <config xmlns="urn:org:jgroups"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="urn:org:jgroups http://www.jgroups.org/schema/JGroups-3.1.xsd">
    <TCP singleton_name="liferay"
    bind_port="7800"
    loopback="false"...
    
  • Déposer le fichier tcp.xml dans /opt/liferay/tomcat-7.0.42/conf/, par exemple. Penser à adapter la configuration suivante en fonction du répertoire de dépose du fichier.
  • Modifier le fichier portal-ext.properties avec:
    #Activation du cluster
    cluster.link.enabled=true
    #Positionner la base de données, un proxy...
    cluster.link.autodetect.address=192.168.52.132:1521
    
    #File System partage,
    dl.store.impl=com.liferay.portlet.documentlibrary.store.AdvancedFileSystemStore
    #File system sur le NAS
    dl.store.file.system.root.dir=/data_shared/liferay/document_library
    
    #Mode debug pour avoir des logs d'activite du cluster
    cluster.executor.debug.enabled=true
    
    #Replication du cache
    ehcache.cluster.link.replication.enabled=true
    
    #Replication de l'indexation des donnees, uniquement si utilisation de Lucene
    lucene.replicate.write=true
    
    #Mise en cluster de Quartz, necessite la suppression des tables QUARTZ_...
    org.quartz.jobStore.isClustered=true
    
    #Configuration du Cluster en mode Unicast
    cluster.link.channel.properties.control=/opt/liferay/tomcat-7.0.42/conf/tcp.xml
    cluster.link.channel.properties.transport.0=/opt/liferay/tomcat-7.0.42/conf/tcp.xml
    ehcache.bootstrap.cache.loader.factory=com.liferay.portal.cache.ehcache.JGroupsBootstrapCacheLoaderFactory
    ehcache.cache.event.listener.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactory
    ehcache.cache.manager.peer.provider.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactory
    net.sf.ehcache.configurationResourceName.peerProviderProperties=file=/opt/liferay/tomcat-7.0.42/conf/tcp.xml
    ehcache.multi.vm.config.location.peerProviderProperties=file=/opt/liferay/tomcat-7.0.42/conf/tcp.xml
  • Déposer le plugin Ehcache Cluster EE disponible depuis le MarketPlace
  • Ajouter les paramètres de démarrage à la JVM (setenv.sh ou définition du service)
    CATALINA_OPTS=-Djgroups.bind_addr=IP noeud -Djgroups.tcpping.initial_hosts=IP noeud 1[7800], IP noeud 2[7800]
  • Redémarrer vos instances Liferay

Normalement, vous devriez avoir des logs indiquant l’activation du cluster ainsi que lors du démarrage/arrete des autres noeuds de votre cluster :

17:53:24,867 INFO  [Incoming-1,shared=liferay][DebuggingClusterEventListenerImpl:57] Cluster event JOIN_Cluster node {clusterNodeId=3509141d-680f-4546-9ac2-c26c881aeee0, portalProtocol=http, inetAddress=/xxxxxx, port=8080} [Sanitized]

You may also like...