Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.
JBoss 7 als Plattform fürhochverfügbare AnwendungenExpertenkreis Java14.03.2013, GEDOPLANDirk Weil, GEDOPLAN GmbH
Hochverfügbarkeit  Lastverteilung     Große Menge von Anfragen     Verteilung auf mehrere Cluster-Knoten     Verschiedene ...
Cluster-ArchitekturenEinfacher Cluster-Aufbau                                              Cluster                        ...
Cluster-Architekturen  Mehrstufiger Cluster-Aufbau                                     Cluster 1   Cluster 2              ...
Cluster-Architekturen                                              Cluster 1Segmentierter Cluster-Aufbau                  ...
Cluster-Architekturen  Load-Balancer erzeugt Illusion „einzelner Server“  Implementierungsvarianten:      Hardware      We...
JBoss 7 im Clusterbetrieb  „Work in Progress“  Viele Änderungen 7.0.x   7.1.0    7.1.1 ( 7.1.2)  Dokumentation unvollständ...
JBoss 7 im Clusterbetrieb  Standalone-Modus                                                 Standalone     Konfiguration …...
Web                              Session                                             JBoss 7 im Clusterbetrieb            ...
Konfiguration eines Clusters  Domain  Server Group im  Profil ha oder full-ha                               10
Konfiguration eines Clusters  Demo:     Master auf Windows-PC     2 virtuelle     Linux-Maschinen     mit je 2 Slaves     ...
Web-Anwendungen im JBoss-7-Cluster  Lastverteilung mittels mod_cluster möglich     Dynamische Konfiguration     Lastvertei...
Web-Anwendungen im JBoss-7-Cluster  Demo:     Clusterfähige Web-Anwendung im JBoss-Cluster     Apache Webserver mit mod_cl...
EJBs im JBoss-7-Cluster  Proxies implementieren Lastverteilungsverfahren  Erster Zugriff auf beliebigen Knoten  Weitere Zu...
EJBs im JBoss-7-Cluster  Demo:     Remote-Aufruf einer Stateless Session Bean     Remote-Aufruf einer Stateful Session Bea...
Messaging im JBoss-7-Cluster  Verbindungsaufbau (ConnectionFactory, Connection)  geschieht zufällig zu einem Knoten  Meldu...
Messaging im JBoss-7-Cluster  Ein Ausfall eines Knotens …  … wird serverseitig nach einigen Sekunden bemerkt     Das Lastv...
JPA-Entities im JBoss-7-Cluster  Profitieren nur indirekt     Lastverteilung Webanwendung bzw. EJBs     Failover     Daten...
JPA-Entities im JBoss-7-Cluster  Default-Verfahren: Caching mit Invalidierung     Jeder Knoten füllt den 2nd Level Cache s...
Schön, dass Sie da waren!Unsere nächsten Termine:16.05.2013: Desktop Usability im Browser - GWT in Business Anwendungen04....
Nächste SlideShare
Wird geladen in …5
×

JBoss 7 als Plattform für hochverfügbare Anwendungen

524 Aufrufe

Veröffentlicht am

Vortrag von Dirk Wei dem auf Expertenkreis Java am 14.3.2013, GEDOPLAN GmbH, Bielefeld

  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

JBoss 7 als Plattform für hochverfügbare Anwendungen

  1. 1. JBoss 7 als Plattform fürhochverfügbare AnwendungenExpertenkreis Java14.03.2013, GEDOPLANDirk Weil, GEDOPLAN GmbH
  2. 2. Hochverfügbarkeit Lastverteilung Große Menge von Anfragen Verteilung auf mehrere Cluster-Knoten Verschiedene Lastverteilungsverfahren Einzelne Anfrage wird i. d. R. verlangsamt! Ausfallsicherheit Mehrere redundante Cluster-Knoten Transparentes „Fail-Over“ bei Knotenausfall Replikation von Sitzungsdaten 2
  3. 3. Cluster-ArchitekturenEinfacher Cluster-Aufbau Cluster JBoss 1 JSPs EJBs Load Balancer Servlets JDBC Client Datenbank JBoss 2 JSPs EJBs Servlets JDBC 3
  4. 4. Cluster-Architekturen Mehrstufiger Cluster-Aufbau Cluster 1 Cluster 2 JBoss 1 JBoss 3 Load Balancer JSPs EJBs Servlets JDBC Datenbank Client JBoss 2 JBoss 4 JSPs EJBs Servlets JDBC 4
  5. 5. Cluster-Architekturen Cluster 1Segmentierter Cluster-Aufbau JBoss 1 JSPs EJBs Servlets JDBC JBoss 2 JSPs EJBs Servlets JDBC Load Balancer Cluster 2 Client JBoss 3 Datenbank JSPs EJBs Servlets JDBC JBoss 4 JSPs EJBs Servlets JDBC 5
  6. 6. Cluster-Architekturen Load-Balancer erzeugt Illusion „einzelner Server“ Implementierungsvarianten: Hardware Webserver-Proxy Cluster-aware Proxies Lastverteilungsverfahren: Round-Robin 10.1.2.100 JBoss1 Random 10.1.2.101 Client Load Balancer JBoss2 Gewichtet Sticky Session 10.1.2.102 JBoss3 6
  7. 7. JBoss 7 im Clusterbetrieb „Work in Progress“ Viele Änderungen 7.0.x 7.1.0 7.1.1 ( 7.1.2) Dokumentation unvollständig, teilweise veraltet 7
  8. 8. JBoss 7 im Clusterbetrieb Standalone-Modus Standalone Konfiguration …-ha.xml Server Kein gemeinsames Deployment! Standalone Server Autodeployment möglich. Standalone Server Domänen-Modus Profil ha oder full-ha Gemeinsames Deployment mittels Admin-Tools Kein Autodeployment 8
  9. 9. Web Session JBoss 7 im Clusterbetrieb Stateful Session Beans JGroups Infinispan Hibernate (JPA) HornetQ (JMS)9
  10. 10. Konfiguration eines Clusters Domain Server Group im Profil ha oder full-ha 10
  11. 11. Konfiguration eines Clusters Demo: Master auf Windows-PC 2 virtuelle Linux-Maschinen mit je 2 Slaves 11
  12. 12. Web-Anwendungen im JBoss-7-Cluster Lastverteilung mittels mod_cluster möglich Dynamische Konfiguration Lastverteilung mit serverbasierten Metriken HTTP, HTTPS oder AJP 10.1.2.100 JBoss1 Apache HTTP Server 10.1.2.101 HTTP/HTTPS HTTP/HTTPS/AJP JBoss2 10.1.2.102 JBoss3 12
  13. 13. Web-Anwendungen im JBoss-7-Cluster Demo: Clusterfähige Web-Anwendung im JBoss-Cluster Apache Webserver mit mod_cluster auf Windows-PC 13
  14. 14. EJBs im JBoss-7-Cluster Proxies implementieren Lastverteilungsverfahren Erster Zugriff auf beliebigen Knoten Weitere Zugriffe durch Proxy verteilt Kein externer Loadbalancer nötig! Node 1 Client EJB Proxy Node 2 EJB Lastverteilung nur bei Remote-Zugriffen 14
  15. 15. EJBs im JBoss-7-Cluster Demo: Remote-Aufruf einer Stateless Session Bean Remote-Aufruf einer Stateful Session Bean 15
  16. 16. Messaging im JBoss-7-Cluster Verbindungsaufbau (ConnectionFactory, Connection) geschieht zufällig zu einem Knoten Meldungsversand PtP-Meldungen werden lastverteilt Pub/Sub-Meldungen gehen an alle Knoten Knoten ohne passende Consumer werden nicht bedient Meldungsempfang Nur von einem Knoten aber: Knoten ohne passende Consumer erhalten keine Meldungen 16
  17. 17. Messaging im JBoss-7-Cluster Ein Ausfall eines Knotens … … wird serverseitig nach einigen Sekunden bemerkt Das Lastverteilungsverfahren wird reorganisiert Zwischenzeitlich für den ausgefallenen Knoten vorgesehene Meldungen werden zugestellt, wenn er wieder läuft … führt clientseitig zum Verbindungsabbruch sofortiges Reconnect (an anderen Knoten) möglich Keine Meldung geht verloren, wenn Auslieferung persistent! 17
  18. 18. JPA-Entities im JBoss-7-Cluster Profitieren nur indirekt Lastverteilung Webanwendung bzw. EJBs Failover Datenbank Performanceerhöhung 2nd Level Cache Query Cache 18
  19. 19. JPA-Entities im JBoss-7-Cluster Default-Verfahren: Caching mit Invalidierung Jeder Knoten füllt den 2nd Level Cache selbsttätig Schreiboperation invalidiert betroffene Einträge auf den anderen Cluster-Knoten L2C Andere Verfahren JBoss2 möglich, aber L2C selten sinnvoll JBoss1 L2C JBoss3 19
  20. 20. Schön, dass Sie da waren!Unsere nächsten Termine:16.05.2013: Desktop Usability im Browser - GWT in Business Anwendungen04.07.2013: jBPM und Drools: Prozess- und Regelgestützte Fachanwendungen dirk.weil@gedoplan.de

×