• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
JBoss 7 als Plattform für hochverfügbare Anwendungen
 

JBoss 7 als Plattform für hochverfügbare Anwendungen

on

  • 316 views

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

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

Statistics

Views

Total Views
316
Views on SlideShare
316
Embed Views
0

Actions

Likes
0
Downloads
5
Comments
0

0 Embeds 0

No embeds

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 7 als Plattform für hochverfügbare Anwendungen JBoss 7 als Plattform für hochverfügbare Anwendungen Presentation Transcript

    • 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 Lastverteilungsverfahren Einzelne Anfrage wird i. d. R. verlangsamt! Ausfallsicherheit Mehrere redundante Cluster-Knoten Transparentes „Fail-Over“ bei Knotenausfall Replikation von Sitzungsdaten 2
    • Cluster-ArchitekturenEinfacher Cluster-Aufbau Cluster JBoss 1 JSPs EJBs Load Balancer Servlets JDBC Client Datenbank JBoss 2 JSPs EJBs Servlets JDBC 3
    • 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
    • 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
    • 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
    • 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
    • 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
    • Web Session JBoss 7 im Clusterbetrieb Stateful Session Beans JGroups Infinispan Hibernate (JPA) HornetQ (JMS)9
    • 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 11
    • 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
    • Web-Anwendungen im JBoss-7-Cluster Demo: Clusterfähige Web-Anwendung im JBoss-Cluster Apache Webserver mit mod_cluster auf Windows-PC 13
    • 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
    • EJBs im JBoss-7-Cluster Demo: Remote-Aufruf einer Stateless Session Bean Remote-Aufruf einer Stateful Session Bean 15
    • 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
    • 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
    • JPA-Entities im JBoss-7-Cluster Profitieren nur indirekt Lastverteilung Webanwendung bzw. EJBs Failover Datenbank Performanceerhöhung 2nd Level Cache Query Cache 18
    • 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
    • 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