JOnAS Day
   5.1
Clustering
Solution complète de clustering

     Répartition de charge & bascule sur échec
       Application Web avec mod_jk/mod_pro...
Ferme Web




      Répartiteur de niveau TCP
      Apache 2.2 / mod_jk
       Mise en œuvre de modules éprouvés
       Se...
Ferme EJB



                    Séparation présentation,services métier

                                    Adapté au pa...
Clustering EJB

     HA JNDI et réplication des annuaires & fail-over sur lookup()
     Load-balancing & fail-over EJB ave...
Support des EJB2 & EJB3


    Integration avec les conteneurs EJB2 et EJB3
     Proxies, plus de classes “_cmi” dans le cl...
Support multi-protocoles
    CMIv2 indépendant de Carol et du protocole sous-
    jacent                                  ...
Conception orientée performance

       Séparation flux de service/ flux de contrôle

     Allocation d'un thread dédié po...
Logique cluster dynamique
     Politique de répartition gérée coté serveur

      Simple POJO

      Politiques prédéfinie...
Arrêt en douceur d'un membre du cluster
       Arrêt programmé/Opération de maintenance

     Arrêt sans interruption de s...
Mode cluster transparent pour les clients



        Un client EJB n'a pas à être “conscient” du mode cluster

      L'act...
API réduite & stable pour les clients lourds

        Indépendante de la version JOnAS (~50ko)
        Les classes sont té...
Configuration tier web/ejb - mode serveur (défaut)




13      ©Bull, 2009         JOnAS Day 5.1
Configuration tier web/ejb - mode client




14      ©Bull, 2009         JOnAS Day 5.1
Configuration cluster d'un EJB3

     Annotations spécifiques

         package org.ow2.easybeans.examples.cluster;
      ...
Configuration cluster d'un EJB3

      Descripteur de déploiement spécifique
       Surcharge les éventuelles annotations
...
democluste
                             r
                            JAR

     Architecture démo
            democluste
 ...
10 Clustering
Prochain SlideShare
Chargement dans…5
×

10 Clustering

1 094 vues

Publié le

JOnAS 5.1: Clustering

Publié dans : Business, Technologie
0 commentaire
0 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Aucun téléchargement
Vues
Nombre de vues
1 094
Sur SlideShare
0
Issues des intégrations
0
Intégrations
5
Actions
Partages
0
Téléchargements
18
Commentaires
0
J’aime
0
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

10 Clustering

  1. 1. JOnAS Day 5.1 Clustering
  2. 2. Solution complète de clustering Répartition de charge & bascule sur échec Application Web avec mod_jk/mod_proxy Connecteur http pour md_proxy Application Ejb avec CMIv2 Réplication Application Web avec tomcat Tous les noeuds (DeltaManager) Java EE cluster Par paire (BackupManager) Application Ejb avec le service HA Stateful EJB2 (EJB3 à venir) Administration JASMINe tooling 2 ©Bull, 2009 JOnAS Day 5.1
  3. 3. Ferme Web Répartiteur de niveau TCP Apache 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. 3 ©Bull, 2009 JOnAS Day 5.1
  4. 4. 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) 4 ©Bull, 2009 JOnAS Day 5.1
  5. 5. 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 HA EJB2.1 (SFSB) 5 ©Bull, 2009 JOnAS Day 5.1
  6. 6. Support des EJB2 & EJB3 Integration avec les conteneurs EJB2 et EJB3 Proxies, plus de classes “_cmi” dans le classpath du client HA EJB avec le service HA EJB2.1 (SFSB) 6 ©Bull, 2009 JOnAS Day 5.1
  7. 7. Support multi-protocoles CMIv2 indépendant de Carol et du protocole sous- jacent appli Vue cluster = registre CMI carol ClusteredObject Liste des url de registre RMI contenant l'objet cmi Synchronisée dans le cluster avec Jgroups 2.6 (support ipv6) jrmp iiop irmi Supporte les protocoles jrmp, iiop, irmi JGroups 7 ©Bull, 2009 JOnAS Day 5.1
  8. 8. Conception orientée performance 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 Control flow Service flow Stubs pool 8 ©Bull, 2009 JOnAS Day 5.1
  9. 9. Logique cluster dynamique 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 Cluster logic V1 V2 Ctrl flow Ma ste r no de Update J1 Cluster logic 9 ©Bull, 2009 JOnAS Day 5.1
  10. 10. Arrêt en douceur d'un membre du cluster 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' 10 ©Bull, 2009 JOnAS Day 5.1
  11. 11. Mode cluster transparent pour les clients 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 11 ©Bull, 2009 JOnAS Day 5.1
  12. 12. API réduite & stable pour les clients lourds Indépendante de la version JOnAS (~50ko) Les classes sont téléchargées depuis le serveur (service smartclient) 3. API download 4. Lookup processing 1.First lookup APP API CMI SF 2. Socket connection Cluster Client JVM 12 ©Bull, 2009 JOnAS Day 5.1
  13. 13. Configuration tier web/ejb - mode serveur (défaut) 13 ©Bull, 2009 JOnAS Day 5.1
  14. 14. Configuration tier web/ejb - mode client 14 ©Bull, 2009 JOnAS Day 5.1
  15. 15. 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 { .... } 15 ©Bull, 2009 JOnAS Day 5.1
  16. 16. Configuration cluster d'un EJB3 Descripteur de déploiement spécifique Surcharge 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> 16 ©Bull, 2009 JOnAS Day 5.1
  17. 17. democluste r JAR Architecture démo democluste r CLIENT democluste r JAR node 1 JMX Remote master laptop 17 ©Bull, 2009 JOnAS Day 5.1

×