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

426 Aufrufe

Veröffentlicht am

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

0 Kommentare
0 Gefällt mir
Statistik
Notizen
  • Als Erste(r) kommentieren

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

Keine Downloads
Aufrufe
Aufrufe insgesamt
426
Auf SlideShare
0
Aus Einbettungen
0
Anzahl an Einbettungen
1
Aktionen
Geteilt
0
Downloads
7
Kommentare
0
Gefällt mir
0
Einbettungen 0
Keine Einbettungen

Keine Notizen für die Folie

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

×