31
Hochverfügbarkeit mit der Enterprise Applica9on Pla;orm Heinz Wilming [email protected] akquinet AG

JBoss EAP clustering

Embed Size (px)

DESCRIPTION

Die JBoss Enterprise Application Platform (und das Upstream Projekt Wildfly aka JBoss AS 7) enthält ausgereifte Technologien um kritische Java EE Anwendungen Hochverfügbar auf Ebene der Middleware zu betreiben. Die enthaltenen Profile sind bereits für kleinere Cluster Topologien entsprechend konfiguriert. Mit dem Domain Mode des Applikationsservers lassen sich mehrere Server Instanzen komfortabel verwalten. Jedoch birgt ein Cluster eine hohe Komplexität, die Detailkenntnisse der grundlegenden Technologien wie JGroups und Infinispan erfordern. Im Vortrag werden die grundlegenden Konzepte beleuchtet und während des Vortrages wird gezeigt wie ein Cluster im Domain Mode mit der Enterprise Application Platform betrieben werden kann.

Citation preview

Page 1: JBoss EAP clustering

Hochverfügbarkeit  mit  der          

                                                                                                   Enterprise  Applica9on    Pla;orm  

   

Heinz  Wilming    

[email protected]    

akquinet  AG  

Page 2: JBoss EAP clustering

Eigenscha:en  Java  Enterprise  Edi?on    

zuverlässig  

sicher  skalierbar  

wartbar  

Page 3: JBoss EAP clustering

EAP6  !=  EAP5  +1    

Page 4: JBoss EAP clustering

Clustering  Gruppe  von  Servern,  die  gleiche  Dienste  erbringen.  Client  sieht  nur  den  Cluster  nicht  die  Server.  

Ziele:  §  Fehlertoleranz  durch  Ausblenden    

fehlerha:er  Server  (⇒  Hochverfügbarkeit,  HA)  

§  Lastausgleich  durch  Verteilung    an  Server  Knoten  (⇒  Skalierbarkeit)  

Page 5: JBoss EAP clustering

Lastverteilung  ohne  Session  Replika?on  

     

Skalierung  

Page 6: JBoss EAP clustering

Demo  

Page 7: JBoss EAP clustering

mod_cluster  

AJP  Request  MCMP  Worker,  Context,  Load-­‐Metrics  

HTTP  /  HTTPS  

Page 8: JBoss EAP clustering

mod_cluster  §  Dynamische  Konfigura?on  der  HTTPD  worker  Adver?se  mi`els  Mul?cast  

§  Intelligente  Lastverteilung  Einbezug  von  Lastverteilungsmetriken    (cpu,  mem,  heap,  sessions,  receive-­‐traffic,  send-­‐traffic,  requests,  busyness)  

§  Load-­‐Balancing  Groups  (aka.  Domäne)    

Page 9: JBoss EAP clustering

mod_cluster  vs.  mod_jk  §  mod_jk  benö?gt  sta?sche  Konfigura?on  §  Cluster  Knoten  hinzufügen  oder  engernen  (worker.proper?es)  §  Anwendung  hinzufügen  oder  engernen  

(uriworkermap.proper?es)  

Page 10: JBoss EAP clustering

Session  Replika?on  

Page 11: JBoss EAP clustering

Demo  

Page 12: JBoss EAP clustering

Subsysteme  

Page 13: JBoss EAP clustering

Cluster–fähige  Applika?onen  Clustering  einer  EJB  Session-­‐Bean    

@Stateless

@Remote(ClusteredStateless.class) @org.jboss.ejb3.annotation.Clustered public class ClusteredStatelessBean implements ClusteredStateless { ... }  

Zustandslose  Session  Beans  à  dynamische  Lastverteilung  auf  Clusterknoten  

Zustandsbeha:ete  Session  Beans    à  Session  Affinity  à  Failover  

Alterna?v:  Deployment-­‐Descriptor  (  META-­‐INF/jboss-­‐ejb3.xml)  

 

Page 14: JBoss EAP clustering

HTTP  Session  Replika?on  

Replika?on  der  HTTP-­‐Session  stellt  sicher,  dass  die  Sessions  der  Klienten  auf  anderen  Cluster-­‐Knoten  verfügbar  sind  

<web-app> <distributable/> </web-app>

à  WEB-­‐INF/web.xml  

Page 15: JBoss EAP clustering

Cluster  Kommunika?on  

Page 16: JBoss EAP clustering

JGroups  Transport  

Page 17: JBoss EAP clustering

UDP  

Page 18: JBoss EAP clustering

TCP  

Page 19: JBoss EAP clustering

TUNNEL  

Page 20: JBoss EAP clustering

Replica?on  Um  Hochverfügbarkeit  zu  unterstützen,    müssen  die  Daten  innerhalb  des  Clusters    repliziert  werden  

Infinispan  wird  intern  für  die    Replika?on  verwendet  

Page 21: JBoss EAP clustering

Replica?on  -­‐  Cache  mode  

Page 22: JBoss EAP clustering

Distribu?on-­‐  Cache  mode  

Page 23: JBoss EAP clustering

L1  -­‐  Cache  mode  

Page 24: JBoss EAP clustering

Invalida?on  -­‐  Cache  mode  

Page 25: JBoss EAP clustering

Cluster  Par??onen  

Page 26: JBoss EAP clustering

Op?mierung  

•  JGroups  Distribu?on  enthält  vorkonfigurierte  Stacks  für  unterschiedliche  Cluster  Topologien  – UDP  vs.  TCP  

•  Infinispan  – ASYNC  vs.  SYNC  – HTTP  Session  Replica?on  

•  Replica?on  Trigger  •  Replica?on  Granularity  

Page 27: JBoss EAP clustering

Messaging  (HornetQ)  

1. Zuverlässigkeit    bereits  empfangene  Nachrichten  werden  garan?ert  zugestellt  (gehen  nicht  verloren)  

2.   höherer  Nachrichtendurchsatz  3.    Lastverteilung  4.    automa9sches  Failover  bestehender  Verbindungen  

Page 28: JBoss EAP clustering

HornetQ  -­‐  Lastverteilung  

Page 29: JBoss EAP clustering

HornetQ  -­‐  Failover  

•  Ab  JBoss  EAP  6.1  (HornetQ  2.3)  -­‐  In-­‐Memory  Message  Replica?on  

Page 30: JBoss EAP clustering

7.2.0.Final    

8.0.0  alpha1  

6.1.0  alpha  

6.1.0  beta  

6.1.0  Final  

7.x    

QA    

Zero-­‐Dollar-­‐Subscrip9on  for  Development    Payed-­‐Subscrip9on  with  Support  for  Produc9on  

Free  

Page 31: JBoss EAP clustering

akquinet  AG  –  Standort  Berlin  

JAVA  

Beratung  und  Coaching  

Individuelle  Lösungen  

Betriebsführung  

Schulungen  

Produktberatung