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 »
123456<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:
123456789101112131415161718192021222324252627282930#Activation du clustercluster.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 NASdl.store.file.system.root.dir=/data_shared/liferay/document_library#Mode debug pour avoir des logs d'activite du clustercluster.executor.debug.enabled=true#Replication du cacheehcache.cluster.link.replication.enabled=true#Replication de l'indexation des donnees, uniquement si utilisation de Lucenelucene.replicate.write=true#Mise en cluster de Quartz, necessite la suppression des tables QUARTZ_...org.quartz.jobStore.isClustered=true#Configuration du Cluster en mode Unicastcluster.link.channel.properties.control=/opt/liferay/tomcat-7.0.42/conf/tcp.xmlcluster.link.channel.properties.transport.0=/opt/liferay/tomcat-7.0.42/conf/tcp.xmlehcache.bootstrap.cache.loader.factory=com.liferay.portal.cache.ehcache.JGroupsBootstrapCacheLoaderFactoryehcache.cache.event.listener.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheReplicatorFactoryehcache.cache.manager.peer.provider.factory=net.sf.ehcache.distribution.jgroups.JGroupsCacheManagerPeerProviderFactorynet.sf.ehcache.configurationResourceName.peerProviderProperties=file=/opt/liferay/tomcat-7.0.42/conf/tcp.xmlehcache.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)
1CATALINA_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 :
1 |
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] |