Mise en oeuvre d'un site JCMS à haute disponibilité avec BEA Weblogic

Cet article décrit l'architecture, l'installation et la configuration d'un site JCMS à haute disponibilité en utilisant JSync, le protocole de réplication de JCMS, dans un environnement Weblogic. Il complète l'article Mise en oeuvre d'un site JCMS à haute disponibilité avec le protocole de réplication JSync qui présente la même problématique avec le serveur d'application Tomcat.

1. Architecture

L'architecture haute disponibilité la plus simple se compose d'un répartiteur de chargeur et de deux réplicas, l'un jouant le rôle de leader. Dans notre exemple, pour des raisons de simplicité et de coût, nous utiliserons Apache 2 comme répartiteur de charge. Néanmoins, pour les sites nécessitant une très haute disponibilité, il est recommandé d'utiliser un répartiteur de charge matériel et une topologie réseau redondante.

Archicteture

Fig. 1. Architecture.

2. Installation et configuration

L'installation se déroule en trois étapes :

  • paramétrage des deux serveurs Weblogic et de JCMS ;
  • paramétrage de JSync ;
  • paramétrage d'Apache pour la répartition de charge.

2.1 Paramétrage des serveurs Weblogic

Chaque serveur Weblogic est installé sur le serveur correspondant suivant le protocole d’installation décrit dans le manuel d’installation de JCMS. Au cours de cette installation, vous allez également installer la webapp JCMS.

Une fois l’installation de chaque serveur weblogic terminée, il faut se connecter à la console d’administration Weblogic du serveur Weblogic1 puis à celle du serveur Weblogic2 pour refaire les mêmes manipulations que sur le serveur weblogic1.

L’adresse de la console d’administration du serveur Weblogic1 est :

http://192.168.0.3:7001/console (mettre l’adresse de votre serveur à la place de 192.168.0.3)

Dans la colonne de gauche, ouvrez l’arborescence Servers puis cliquer sur le serveur myserver par défaut. Cliquez ensuite en page centrale sur l’onglet Protocols puis sur le sous onglet Channels.

Vous obtenez l’écran suivant :

Channel1

Fig. 2. Weblogic : ajout d'un channel.

Un channel est un élément de configuration qui permet au serveur d’écouter sur différents ports. Un channel est constitué de 3 parties : le protocole de transfert, l’adresse et le port d’écoute. Un serveur peut avoir plusieurs channel mais un channel ne peut être présent que sur un serveur. Chaque channel appartenant à un serveur doit avoir une seule combinaison protocole, adresse, port. Un channel doit être créé sur chaque serveur Weblogic pour permettre l'échange de message de synchronisation JSync.

Cliquez sur Configure a new Network Channel puis paramétrez le channel comme indiqué sur le schéma ci-dessous en pensant à saisir l’adresse de votre serveur à la place de 192.168.0.3. Le port 7001 est utilisé par défaut par Weblogic pour ses échanges standards, notamment avec Apache, le port 7002 est quant à lui le port par défaut pour le protocole HTTPS. Choisissez un port d’écoute différent de ces 2 ports, par exemple 7010.

Cliquez ensuite sur le bouton create, puis sur le serveur myserver dans l’arborescence de menus de gauche.

Channel2

Fig. 3. Weblogic : configuration d'un channel.

Le channel apparaît dans la liste des channels.

Channel3

Fig. 4. Weblogic : liste des channels.

Effectuez la même opération sur le deuxième serveur weblogic.

Les deux serveurs weblogic disposent maintenant d'un port d'écoute que nous allons utiliser pour le protocole de réplication JSync. Si vous arrêtez et relancez les deux serveurs, un message dans la console vous indique que les serveurs écoutent sur leurs ports définis par défaut et sur les ports que vous avez définis dans les channels.

2.2 Paramétrage de JCMS

2.2.1 Configuration de JSync sur Weblogic1 (le leader)

Accédez au JCMS de Weblogic1 (http://192.168.0.3:7001/jcms/) et identifiez-vous en administrateur. Dans l'éditeur de propriétés, ouvrez l'onglet Réplication et entrez la configuration suivante en prenant garde de changer 192.168.0.3 par l’adresse de votre serveur :

JCMS1

Fig. 5. JCMS : configuration de JSync sur Weblogic1 (leader).

2.2.2 Configuration de JSync sur Weblogic2

Accédez au JCMS de Weblogic2 (http://192.168.0.4:7001/jcms) et identifiez-vous en administrateur. Dans l'éditeur de propriétés, ouvrez l'onglet Réplication et entrez la configuration suivante en prenant garde de remplacer l’adresse 192.168.0.4 par l’adresse de votre serveur :

JCMS2

Fig. 6. JCMS : configuration de JSync sur Weblogic2.

2.2.3 Vérification

Pour vérifier le bon fonctionnement de JSync, arrêtez Weblogic1 et Weblogic2. Relancez Weblogic1, puis, une fois qu'il est prêt, relancez Weblogic2. A la fin de son démarrage, Weblogic2 envoie une requête JSync pour se déclarer à son leader (Weblogic1). Pour vérifier que les 2 réplicas sont bien connectés, consultez le Gestionnaire de réplication (Admin > Avancé) sur chacun des réplicas.

Sur Weblogic1 et Weblogic2 doit apparaître dans la liste des réplicas connectés.

2.2.4 Test de la synchronisation

Pour tester que JSync assure bien la synchronisation des données et des fichiers entre les deux réplicas wl1 et wl2, il suffit de déposer un Document sur l'un et sur l'autre et de vérifier qu'après synchronisation, les 2 Documents sont bien présents avec leur fichier sur les deux réplicas.

Pour cela, créez 2 fichiers textes doc1.txt et doc2.txt. Ouvrez deux navigateurs, l'un sur Weblogic1 (http://192.168.0.3:7001/jcms/) et l'autre sur Weblogic2 (http://192.168.0.4:7001/jcms/). Sur Weblogic1 (resp. Weblogic2) publiez un Document avec doc1.txt (resp. doc2.txt). Au bout de 5 secondes, rechargez la page Tous mes contenus sur les deux navigateurs et vérifiez que les deux Documents sont bien présents sur chacun de deux réplicas. Consultez les fichiers pour tester qu'ils ont bien été répliqués.

2.3 Paramétrage d'Apache en répartiteur de charge

Installez Apache 2.0.50 si celui-ci n’a pas déjà été installé.

Dans le répertoire d’installation weblogic, recherchez le module apache mod_wl_20.so en vous référant à la documentation en ligne Installing and Configuring the Apache HTTP Server Plug-In ou au document PDF Using Web Server Plug-Ins with WebLogic Server pour savoir quel module correspond à votre installation. Copiez ce module dans le répertoire APACHE_DIR/Apache2/modules/.

Ouvrez ensuite le fichier httpd.conf qui se trouve dans le répertoire APACHE_DIR/Apache2/conf/ et ajouter la déclaration du module Weblogic :

LoadModule weblogic_module modules/mod_wl_20.so

Ajoutez les lignes de configuration suivantes en remplaçant les adresses 192.168.0.3 par l’adresse de Weblogic1 et 192.168.0.4 par l’adresse de Weblogic2.

<IfModule mod_weblogic.c>
# Paramètre obligatoire pour l'utilisation de cluster weblogic
DynamicServerList ON

# Active le KeepAlive sur la connection au serveur d'application :
KeepAliveEnabled ON

# Niveau de débugage (ON,OFF,ERR,ALL,HFC,HTW,HFW,HTC)
Debug ERR

# Active les url avec ?__WebLogicBridgeConfig
DebugConfigInfo OFF

# Emplacement du fichier de log
WLLogFile logs/weblogic.log

<Location /jcms>
SetHandler weblogic-handler
WebLogicCluster 192.168.0.3:7001, 192.168.0.4:7001
MatchExpression *.jsp
</Location>
</IfModule>

Cette configuration indique à Apache que les requêtes d’accès au site par l’url http://adresseApache:9000/jcms/*.jsp sont redirigées vers les serveurs Weblogic1 ou Weblogic2 selon une politique de round robin.

En résumé...

Cet article décrit l'architecture, l'installation et la configuration d'un site JCMS à haute disponibilité en utilisant JSync, le protocole de réplication de JCMS, dans un environnement Weblogic. L'architecture proposée se compose d'un groupe de serveurs Weblogic placés en aval d'un serveur Apache 2 configuré en répartition de charge.

Sujet
Publié

03/05/07

Rédacteur
  • Bruno Courtiau