JBoss AS / EAP  Clustering
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

JBoss AS / EAP Clustering

on

  • 1,084 views

Der JBoss AS 7 / EAP 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 ...

Der JBoss AS 7 / EAP 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.

Statistics

Views

Total Views
1,084
Views on SlideShare
1,068
Embed Views
16

Actions

Likes
0
Downloads
23
Comments
0

1 Embed 16

http://eventifier.co 16

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

JBoss AS / EAP Clustering Presentation Transcript

  • 1.                        AS  7  /  EAP  6  -­‐  Clustering    heinz.wilming@akquinet.de  @akquinet  h3p://blog.akquinet.de      
  • 2. Was  ist  die  EAP  6?  EAP6  !=  EAP5  +1      JBoss  Enterprise  ApplicaBon  PlaCorm  6  ¡  Stabile  und  unterstützte  Pla>orm  ¡  Basiert  auf  JBoss  ApplicaDon  Server  7.1.3  ¡  ImplemenDert  die  Java  Enterprise  EdiDon  6  SpezifikaDon   –  Web  Profile   –  Full  Profile  ¡  EAP6  ist  für  beide  Profile  zerDfiziert  Copyright  ©  2012  –  akquinet  AG   04.04.13   2  
  • 3. Enterprise  ApplicaBon  PlaCorm  6   7.1.1   7.1.2   6.0.0   7.1.3   6.0.1   7.2.0   6.1.0   s     Bugfixe alpha   8.0.0     alpha1  Copyright  ©  2012  –  akquinet  AG   03.04.13   3  
  • 4. EAP6  /  JBoss  AS  7  Ein  kompleN  neuer  Kernel  ¡  Einsatz  von  JBoss  Modules  und  JBoss  Modular  Service  Container  (MSC)  ¡  Sehr  schnelle  Startzeiten  ¡  Geringer  Speicherverbrauch  ¡  Bessere  Trennung  von  Diensten   (z.B.  zwei  unterschiedliche  Nachrichtendienste  in  einer  JVM  möglich)  ¡  Einfache  Verwaltung  und  KonfiguraDon  Copyright  ©  2012  –  akquinet  AG   03.04.13   4  
  • 5. Domain  vs.  Standalone  KonfiguraBon  und  Verwaltung  
  • 6. Verwaltungskonzept  Domain  Mode   Standalone  Mode      §  zentrales  Management  mehrerer   §  Verwaltung  genau  einer  Serverinstanz   Serverinstanzen  und  physikalischer   §  Verhalten  wie  JBoss  4/5/6   Hosts   §  Eine  Server-­‐Instanz  pro  JVM  §  Zentraler  Domain-­‐Controller   §  Kein  Farm-­‐Deployment  §  Verwaltung  mehrerer  Server  (Hosts)   §  Deployment  via  Filesystem  und  CLI  §  Zentrale  KonfiguraBon      §  Zentrales  Deployment  via     MangemenNools,  z.B.  CLI           ⇒  Unabhängig  von  den  Serverfunk3onen  und  Eigenscha7en           ⇒  Unabhängig  von  HA,  nur  ein  Verwaltungskonzept  Copyright  ©  2012  –  akquinet  AG   03.04.13   6  
  • 7. Host  und  Domain  Controller      Copyright  ©  2012  –  akquinet  AG   03.04.13   7  
  • 8. EAP  6  Clustering  Cluster  =  Gruppe  von  Servern,  die  gleiche  Dienste  erbringen  Client  sieht  nur  den  Cluster  nicht  die  Server      Ziele:  §  Fehlertoleranz  durch  Ausblenden     fehlerha`er  Server   (⇒  Hochverfügbarkeit;  High  Availability,  HA)  §  Lastausgleich  durch  Verteilung     an  Server  Knoten   (⇒  Skalierbarkeit,  Performanz)      Copyright  ©  2012  –  akquinet  AG   03.04.13   8  
  • 9. EAP  6  -­‐  KonfiguraBonsprofile  §  default   <domain> Java  EE  Web  Profile  +  Erweiterungen   <extensions> ... wie  z.B.:  JAX-­‐RS,  EJB  Remote  InvocaDon   </extensions>§  ha   <profiles> default  +  Clustering  FunkDonen   <profile name="ha">§  full   <subsystem xmlns="urn:"> Java  EE  Full  Profile     ... </subsystem> +  Alle  ServerfunkDonen  ohne  HA   ...§  full-­‐ha   </profile> Full  Profile  +  Clustering   <profile name="full-ha">   <subsystem xmlns="urn:">   ...   </subsystem>  Clustering  Services  (Channel,  Cache)   </profile> werden  nur  gestartet    wenn  eine   </profiles> </domain> abhängiger  Service  Cluster-­‐ FunkBonalitäten  benöBgt.      Copyright  ©  2012  –  akquinet  AG   03.04.13   9  
  • 10. Cluster–fähige  ApplikaBonen  
  • 11. Cluster-­‐fähige  ApplikaBonen  Clustering  einer  EJB  Session-­‐Bean    @Stateless@Remote(ClusteredStateless.class)@org.jboss.ejb3.annotation.Clusteredpublic class ClusteredStatelessBean implements ClusteredStateless { ...}  Zustandslose  Session  Beans  à  dynamische  Lastverteilung  auf  Clusterknoten  Zustandsbehagete  Session  Beans    à  Session  Affinity  à  Failover  AlternaBv:  Deployment-­‐Descriptor  (  META-­‐INF/jboss-­‐ejb3.xml)  Copyright  ©  2012  –  akquinet  AG   04.04.13   11  
  • 12.  HTTP  Session-­‐ReplikaBon    ReplikaBon  der  HTTP-­‐Session  stellt  sicher,  dass  die  Sessions  der  Klienten  auf  anderen   Cluster-­‐Knoten  verfügbar  sind    <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0"> <distributable/></web-app>  WEB-­‐INF/web.xml  Copyright  ©  2012  –  akquinet  AG   03.04.13   12  
  • 13. JPA/Hibernate  2nd  Level  Cache  Infinispan  ist  der  Standard  2nd  Level  Cache  ab  Hibernate  3.5    AkBvierung  in  der  Persistence  Unit  (persistence.xml)    <property name="hibernate.cache.use_second_level_cache" value="true" />  full-­‐  und  default-­‐Profil    §  Local  Cache  Container  für  EnDtäten  /  CollecDons  ha-­‐Profil  §  InvalidaDon  Cache  Container  für  EnDtäten  /  CollecDons    Überschreiben  der  Default-­‐KonfiguraBon  Cache-­‐Container  <property name="hibernate.cache.infinispan.cachemanager“ value="java:jboss/infinispan/mycache"/>Cache  Region  <property name="hibernate.cache.infinispan.entity.cfg" value="entity"/><property name="hibernate.cache.infinispan.collection.cfg" value="entity"/><property name="hibernate.cache.infinispan.query.cfg" value="local-query"/><property name="hibernate.cache.infinispan.timestamp.cfg" value="timestamp"/>  Copyright  ©  2012  –  akquinet  AG   03.04.13   13  
  • 14. EAP6  –  Cluster-­‐relevante  Subsysteme  JGroups     GruppenkommunikaDon  Infinispan   Verteilter  Cache  mod_cluster   HTTP  Load-­‐Balancer    EJB  Client  Library     Remote  EJB  InvocaDon            Copyright  ©  2012  –  akquinet  AG   03.04.13   14  
  • 15. JGroups  JGroups  ist  ein  Framework  für  GruppenkommunikaBon.      Eigenständiges  Projekt  unter  dem  Dach  von  JBoss   hNp://www.jgroups.org/    JGroups  wird  seit  JBoss  AS  3.x  für  die  GruppenkommunikaBon  verwendet    Eigenschagen/Fähigkeiten:  ¡  fehlertolerantes  Verschicken  von  Nachrichten  in  einer  Gruppe  von  Sendern/ Empfängern;     sowohl  Punkt-­‐zu-­‐Punkt  als  auch  Punkt-­‐zu-­‐Gruppe  ¡  Die  Gruppe  kann  dynamisch  vergrößert  und  verkleinert  werden  ¡  AutomaDsche  Erkennung  von  funkDonsunfähigen  Teilnehmern  ¡  Verschlüsselung  und  AuthenDfizierung  ¡  Unterschiedliche  Protokollpipelines  (JGroup  Stack)    Copyright  ©  2012  –  akquinet  AG   03.04.13   15  
  • 16. JGroups  -­‐  Transport  UDP  §  UDP-­‐Unicast  für  Unicast-­‐KommunikaDon  §  IP-­‐MulDcast  für  MulDcast-­‐KommunikaDon  TCP  §  TCP-­‐Unicast  für  Unicast-­‐KommunikaDon  §  mehrere  TCP-­‐Unicasts     für  MulDcast-­‐KommunikaDon  TUNNEL  §  TCP-­‐Unicast  (über  GossipRouter)  für  Unicast-­‐KommunikaDon  §  mehrere  TCP-­‐Unicasts  (Host  nur  einer,  GossipRouter  mehrere)   für  MulDcast-­‐KommunikaDon  Copyright  ©  2012  –  akquinet  AG   04.04.13   16  
  • 17. JGroups  –  JBoss  AS  7  –  KonfiguraBon  JGroups  Subsystem-­‐Module  enthält  eine  Standard-­‐KonfiguraBon  des  JGroups  Stacks    JBOSS_HOME/modules/org/jboss/as/clustering/jgroups/main/ jboss-as-clustering-jgroups-7.x.x.Final.jarà jgroups-defaults.xml  Überschreiben  der  Standard-­‐KonfiguraBon  im  JGroups  Subsystem:    <subsystem xmlns="urn:jboss:domain:jgroups:1.1" default- stack="udp"> <stack name="udp"> ... </stack> <stack name="tcp"> ... </stack></subsystem>  Copyright  ©  2012  –  akquinet  AG   03.04.13   17  
  • 18. JGroups  -­‐  Wahl  des  KommunikaBonsprotokolls    UDP  über  IP-­‐MulBcast  §  Parameter:  MulDcastadresse  §  Gruppenmitglieder  finden  sich  ohne  weitere  KonfiguraDon  selbstständig    AlternaBv  kann  UDP  (Unicast)  oder  TCP  benutzt  werden,   dann  müssen  die  einzelnen  IP-­‐Adressen  gepflegt  werden  <protocol type="TCPPING"> <property name="initial_hosts"> 192.168.0.1[7600], 192.168.0.2[7600] </property> <property name="num_initial_members">2</property> <property name="port_range">0</property> <property name="timeout">2000</property></protocol>      Copyright  ©  2012  –  akquinet  AG   03.04.13   18  
  • 19. Infinispan  Um  Hochverfügbarkeit  zu  unterstützen,  müssen  die  Daten  innerhalb  des  Clusters   repliziert  werden    Infinispan  wird  intern  für  die  ReplikaBon  verwendet    Eigenschagen  §  JSR-­‐107  kompaDble  Cache  Schni3stelle    §  Map  §  Schlüssel-­‐Wert  Paaren  Copyright  ©  2012  –  akquinet  AG   03.04.13   19  
  • 20. Local  -­‐  Cache  mode  Lokaler  In-­‐memory  Cache  ähnlich  wie  JBoss  Cache  und  EHCache    Hibernate  2nd  Level  Cache      Copyright  ©  2012  –  akquinet  AG   03.04.13   20  
  • 21. InvalidaBon  -­‐  Cache  mode  z.B.:  Hibernate  2nd  Level  Cache  in  einer  Cluster  Umgebung      Copyright  ©  2012  –  akquinet  AG   03.04.13   21  
  • 22. ReplicaBon  -­‐  Cache  mode  Copyright  ©  2012  –  akquinet  AG   03.04.13   22  
  • 23. DistribuBon  -­‐  Cache  mode  Konfigurierbare  Anzahl  von  Kopien  (Gute  Skalierbarkeit)  Basiert  auf  Consistent  Hash  Algorithmus    Copyright  ©  2012  –  akquinet  AG   04.04.13   23  
  • 24. L1  -­‐  Cache  mode  First  Level  Cache  um  Netzwerkaufrufe  zu  verringern      Copyright  ©  2012  –  akquinet  AG   03.04.13   24  
  • 25. Lastverteilung  Copyright  ©  2012  –  akquinet  AG   03.04.13   25  
  • 26. HTTP  Lastverteilung  -­‐  mod_cluster  vs.  mod_jk  mod_jk  benöBgt  staBsche  KonfiguraBon  §  Cluster  Knoten  hinzufügen  oder  enpernen  (worker.properDes)  §  Anwendung  hinzufügen  oder  enpernen  (uriworkermap.properDes)  mod_cluster  §  Dynamische  KonfiguraDon  der  HTTPD  worker   AdverDse  mi3els  MulDcast  §  Intelligente  Lastverteilung   Einbezug  von  Lastverteilungsmetriken     (cpu,  mem,  heap,  sessions,  receive-­‐traffic,  send-­‐traffic,  requests,  busyness)  §  Load-­‐Balancing  Groups  (früher  Domäne)        Copyright  ©  2012  –  akquinet  AG   03.04.13   26  
  • 27. Load-­‐balancing  Groups  und  ParBBonen  Copyright  ©  2012  –  akquinet  AG   04.04.13   27  
  • 28. mod_cluster  Manager  Copyright  ©  2012  –  akquinet  AG   04.04.13   28  
  • 29. EnCernte  EJB  Aufrufe    Remote  JNDI    JBoss  Remote  Naming  ¡   enpernter  Zugriff  auf  JNDI    Client  JNDI    JBoss  EJB  Client  ¡  Nur  für  EJB-­‐Aufrufe  ¡  OpDmiert            Copyright  ©  2012  –  akquinet  AG   03.04.13   29  
  • 30. HornetQ    Clustering  und  HA  
  • 31. MoBvaBon  1.   Zuverlässigkeit     bereits  empfangene  Nachrichten  werden  garanBert  zugestellt  (gehen  nicht  verloren)  2.   höherer  Nachrichtendurchsatz  3.   Lastverteilung  4.   automaBsches  Failover  bestehender  Verbindungen        1.  Bietet  bereits  JMS  2.  Auch  möglich  ohne  HA  und  Clustering  3.  Clustering  4.  HA  Copyright  ©  2012  –  akquinet  AG   04.04.13   31  
  • 32. Clustering  /  Lastverteilung  Cluster-­‐ConnecBon  zu  jedem  Nachbarn  §  empfangene  Nachrichten  werden   weitergeleitet  (RoundRobin)  §  wenn  kein  passender  Consumer:   Message-­‐RedistribuDon    §  RoundRobin  kann  opDmiert  werden:   nur  an  Knoten  mit  passendem   Consumer  Copyright  ©  2012  –  akquinet  AG   04.04.13   32  
  • 33. Hochverfügbarkeit  (HA)  mit  HornetQ  mehrere  Server  teilen  ein  Journal  §  gemeinsames  Dateisystem  §  ReplikaDon  über  Netzwerk     (ab  Version  2.3  bzw.  EAP  6.1)      Live-­‐Backup  Prinzip  §  1        Live  §  0-­‐1  Backup  §  0-­‐*  bereit  Backup  zu  werden    Backup  Server  ist  eine  JBoss  AS  7   Instanz  mit  HornetQ  Subsystem  Copyright  ©  2012  –  akquinet  AG   04.04.13   33  
  • 34. HornetQ  –  Server  Discovery  Server  Discovery  mehrere  Server  §  UDP  MulBcast  (oder    JGroups  Stack  ,  ab  2.3)   –  Broadcast-­‐Group:  Verbindungsdaten  senden   –  Discovery-­‐Group:  Verbindungsdaten  empfangen  ¡  oder  staBsch  konfigurierte  Nachbarn  (Connectors)  Copyright  ©  2012  –  akquinet  AG   04.04.13   34  
  • 35. Diskussion,  Fragen  und  Antworten  akquinet  AG    heinz.wilming@akquinet.de  @akquinet  h3p://blog.akquinet.de