10 clustering

18
Clustering JOnAS Day JOnAS Day 5.1 5.1

Upload: landry-stephane-zeng-eyindanga

Post on 27-Jun-2015

905 views

Category:

Business


2 download

DESCRIPTION

JOnAS 5.1: Clustering

TRANSCRIPT

Page 1: 10 Clustering

Clustering

JOnAS Day JOnAS Day 5.15.1

Page 2: 10 Clustering

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

Page 3: 10 Clustering

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.

Page 4: 10 Clustering

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)

Page 5: 10 Clustering

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)

Page 6: 10 Clustering

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

Page 7: 10 Clustering

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

Page 8: 10 Clustering

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

Page 9: 10 Clustering

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

Page 10: 10 Clustering

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

Page 11: 10 Clustering

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

Page 12: 10 Clustering

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

Page 13: 10 Clustering

13 ©Bull, 2009 JOnAS Day 5.1

Configuration tier web/ejb - mode serveur (défaut)

Page 14: 10 Clustering

14 ©Bull, 2009 JOnAS Day 5.1

Configuration tier web/ejb - mode client

Page 15: 10 Clustering

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 { ....}

Page 16: 10 Clustering

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>

Page 17: 10 Clustering

17 ©Bull, 2009 JOnAS Day 5.1

node 1

master laptop

JMX

Rem

ote

democluster

JAR

democluster

CLIENT

democluster

JAR

Architecture démo

Page 18: 10 Clustering