
Tomcat 7 offre des solutions de clustering performante et simple d’utilisation. Retour d’expérience sur la mise en place des adresses MULTICAST
La première chose a faire pour réaliser un clustering TOMCAT est bien sur de posséder deux instances de TOMCAT.
Deux cas sont possibles. Vos deux instances sont sur la même machine (ou VM), auquel cas, il faut bien changer les ports d’écoute de vos TOMCAT. (Rappel ceci sont situés dans le fichier server.xml)
Si vous avez deux machines (ou VM) bien distincte, il n’est pas nécessaire de changer le ports d’écoute.
Pour ceci il suffit de rajouter cette instruction dans le fichier server.xml. Vous pouvez lancer les deux instances de TOMCAT et celles-ci vont se trouver. Bien entendu, la configuration du cluster peut aller beaucoup plus loin. Dans la documentation, on peut constater qu’il est possible de faire beaucoup plus de chose comme le montre cette exemple. En particulier spécifier les adresses de multicast.
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"
channelSendOptions="8">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="auto"
port="4000"
autoBind="100"
selectorTimeout="5000"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve"
filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
<ClusterListener className="org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
</Cluster>
De facto l’adresse de MULTICAST peut poser problème si vous avez deux machines séparées sur un réseau (ou VM). De base sur Debian (cas ou vous avez plusieurs interfaces) par exemple la route n’existe pas et les deux instances de TOMCAT ne se verront pas sur le réseau. Pour pallier ce problème, il faut rajouter la route comme ceci:
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
Ainsi les deux TOMCAT pourront se trouver à travers le réseau et votre CLUSTER de TOMCAT pourra fonctionner correctement.
Kubernetes, c’est quoi ? Comment ça marche ? Définition, avantages et inconvénients.
Tuto AXOPEN - On vous explique pas à pas le déploiement de websockets sur un cluster de Node.js
Laravel et Symfony sont deux frameworks PHP très populaires pour le développement d'applications web. Lorsque l'on envisage une utilisation en mode API, ces frameworks offrent des approches variées dans la gestion des endpoints, controllers, services, répositories et ORM (Object-Relational Mapping). Mais quels sont les différences fondamentales entre Laravel et Symfony sur ces aspects spécifiques ? C'est ce que nous allons découvrir dans cet article !