10 Clustering
-
Upload
landry-stephane-zeng-eyindanga -
Category
Business
-
view
915 -
download
2
description
Transcript of 10 Clustering
Clustering
JOnAS Day JOnAS Day 5.15.1
2 ©Bull, 2009 JOnAS Day 5.1
Solution complète de clustering
Java EE cluster
Répartition de charge & bascule sur échec
Application Web avec mod_jk/mod_proxyConnecteur http pour md_proxy
Application Ejb avec CMIv2
Réplication
Application Web avec tomcat
Tous les noeuds (DeltaManager)
Par paire (BackupManager)
Application Ejb avec le service HA
Stateful EJB2 (EJB3 à venir)
Administration
JASMINe tooling
3 ©Bull, 2009 JOnAS Day 5.1
Ferme Web
Répartiteur de niveau TCPApache 2.2 / mod_jk
Mise en œuvre de modules éprouvés
Sert les pages statiques
Gère l’affinité de session
Avantages: Quelques serveurs Apache suffisent pour beaucoup de serveurs JOnAS.
4 ©Bull, 2009 JOnAS Day 5.1
Ferme EJB
Séparation présentation,services métier
Adapté au passage à l’échelle
Meilleur usage des ressources système
Meilleur controle des contraintes sur backends ( ex : datasource)
5 ©Bull, 2009 JOnAS Day 5.1
Clustering EJB
HA JNDI et réplication des annuaires & fail-over sur lookup()Load-balancing & fail-over EJB avec les proxy CMI
Home EJB2.1 (SSB, SFSB, EB)
Remote EJB2.1 (SSB)
EJB3 (SSB,SFSB)
HA EJB avec le service HAEJB2.1 (SFSB)
6 ©Bull, 2009 JOnAS Day 5.1
Integration avec les conteneurs EJB2 et EJB3Proxies, plus de classes “_cmi” dans le classpath du client
HA EJB avec le service HAEJB2.1 (SFSB)
Support des EJB2 & EJB3
7 ©Bull, 2009 JOnAS Day 5.1
Support multi-protocoles
jrmp iiop irmi
cmi
carol
appliCMIv2 indépendant de Carol et du protocole sous-jacentVue cluster = registre CMI
ClusteredObjectListe des url de registre RMI contenant l'objetSynchronisée dans le cluster avec Jgroups 2.6 (support ipv6)
Supporte les protocoles jrmp, iiop, irmi
JGroups
8 ©Bull, 2009 JOnAS Day 5.1
Séparation flux de service/ flux de contrôle
Allocation d'un thread dédié pour le flux de contrôle côté client
Gestion pool de stubs cote client
Conception orientée performance
Control flow
Service flow
Stubs pool
9 ©Bull, 2009 JOnAS Day 5.1
Logique cluster dynamique
J1Update
Cluster logic
Master node
Ctrl flow
Cluster logic V1Cluster logic V2
Politique de répartition gérée coté serveur
Simple POJO
Politiques prédéfinies : round robin, first available, ha singleton, random
Stratégies : local preference, load factor, …
Possibilité de personnaliser la politique
Mise à jour à chaud depuis la console jonasAdmin
10 ©Bull, 2009 JOnAS Day 5.1
Arrêt programmé/Opération de maintenance
Arrêt sans interruption de service
Désactive le serveur : les nouvelles connexions sont refusées, seules les connexions existantes sont servies
Via la fonctionnalité 'blacklist'
Arrêt en douceur d'un membre du cluster
11 ©Bull, 2009 JOnAS Day 5.1
Un client EJB n'a pas à être “conscient” du mode cluster
L'activation du service CMI s'effectue côté serveur
La configuration par défaut du client suffit pour un fonctionnement en mode nominal
nécessite une liste d'URLs pour un support de la reprise sur échec
Mode cluster transparent pour les clients
12 ©Bull, 2009 JOnAS Day 5.1
Indépendante de la version JOnAS (~50ko)Les classes sont téléchargées depuis le serveur (service smartclient)
API réduite & stable pour les clients lourds
Client JVM
API CMIAPP SF
1.Fi
rst l
ooku
p
Cluster2. Socket connection
3. API download
4. Lookup processing
13 ©Bull, 2009 JOnAS Day 5.1
Configuration tier web/ejb - mode serveur (défaut)
14 ©Bull, 2009 JOnAS Day 5.1
Configuration tier web/ejb - mode client
15 ©Bull, 2009 JOnAS Day 5.1
Configuration cluster d'un EJB3
Annotations spécifiques
package org.ow2.easybeans.examples.cluster;import javax.ejb.Remote;import javax.ejb.Stateless;import org.ow2.cmi.annotation.Cluster;import org.ow2.cmi.annotation.Pool;import org.ow2.cmi.annotation.Policy;import org.ow2.cmi.lb.policy.RoundRobin;import org.ow2.cmi.lb.strategy.LocalPreference;import org.ow2.easybeans.api.bean.EasyBeansBean;
@Stateless@Remote(ClusterRemote.class)@Cluster(name="test_cluster",pool=@Pool(max=10, maxWaiters=15, timeout=2000))@Policy(RoundRobin.class)@Strategy(LocalPreference.class)public class ClusterBeanAN implements ClusterRemote { ....}
16 ©Bull, 2009 JOnAS Day 5.1
Configuration cluster d'un EJB3
Descripteur de déploiement spécifiqueSurcharge les éventuelles annotations
easybeans.xml, élément 'cluster:cluster'
<easybeans xmlns="http://org.ow2.easybeans.deployment.ejb" xmlns:cluster="http://org.ow2.cmi.info.mapping"> <ejb> <session> <ejb-name>clusterXMLBean</ejb-name> <cluster:cluster name="easybeans-cmi"> <cluster:policy>org.ow2.cmi.lb.policy.FirstAvailable</cluster:policy> <cluster:strategy>org.ow2.cmi.lb.strategy.LocalPreference</cluster:strategy> <pool> <max-size>10</max-size> <max-waiters>15</max-waiters> <timeout>2000</timeout> </pool> </cluster:cluster> </session> </ejb></easybeans>
17 ©Bull, 2009 JOnAS Day 5.1
node 1
master laptop
JMX
Rem
ote
democluster
JAR
democluster
CLIENT
democluster
JAR
Architecture démo