jboss 7 als plattform für hochverfügbare anwendungen - oio gmbh
Post on 19-Feb-2022
0 Views
Preview:
TRANSCRIPT
JBoss 7 als Plattform fürhochverfügbare Anwendungen
Orientierungspunkt 04/2013
24.05.2013, OIO
Dirk Weil, GEDOPLAN GmbH
Dirk Weil
GEDOPLAN GmbH, Bielefeld
Java EE seit 1998
Konzeption undRealisierung
Vorträge
Seminare
Veröffentlichungen
2JBoss 7 als Plattform für hochverfügbare Anwendungen
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
3JBoss 7 als Plattform für hochverfügbare Anwendungen
Cluster-Architekturen
EinfacherCluster-Aufbau
4
Client
Load
Bal
ance
r
DB
Cluster
Server 1
Web Logic
Server 1
Web LogicServlet EJB
CDIJPAJMS
Server 2
Web Logic
Server 2
Web LogicServlet EJB
CDIJPAJMS
JBoss 7 als Plattform für hochverfügbare Anwendungen
Cluster-Architekturen
Mehrstufiger Cluster-Aufbau
5
Cluster 2
Client
Load
Bal
ance
r
DB
Server 3
Logic
Server 3
LogicEJBCDIJPAJMS
Server 4
Logic
Server 4
LogicEJBCDIJPAJMS
Cluster 1
Server 1
Web
Server 1
WebServlet
Server 2
Web
Server 2
WebServlet
JBoss 7 als Plattform für hochverfügbare Anwendungen
Cluster-Architekturen
SegmentierterCluster-Aufbau
6
Cluster 1
Server 1
Web Logic
Server 1
Web LogicServ-let
EJBCDIJPAJMS
Server 2
Web Logic
Server 2
Web LogicServ-let
EJBCDIJPAJMS
Cluster 2
Server 3
Web Logic
Server 3
Web LogicServ-let
EJBCDIJPAJMS
Server 4
Web Logic
Server 4
Web LogicServ-let
EJBCDIJPAJMS
DBClient
Load
Bal
ance
r
JBoss 7 als Plattform für hochverfügbare Anwendungen
Cluster-Architekturen
Load-Balancer erzeugt Illusion „einzelner Server“
Implementierungsvarianten:
Hardware
Webserver-Proxy
Cluster-aware Proxies
Lastverteilungsverfahren:
Round-Robin
Random
Gewichtet
Sticky Session
7
Load BalancerClient
10.1.2.100JBoss1
10.1.2.101JBoss2
10.1.2.102JBoss3
JBoss 7 als Plattform für hochverfügbare Anwendungen
JBoss 7 im Clusterbetrieb
„Work in Progress“
Viele Änderungen 7.0.x � 7.1.0 � 7.1.1 (� 7.1.3)
Dokumentation unvollständig, teilweise veraltet
8JBoss 7 als Plattform für hochverfügbare Anwendungen
JBoss 7 im Clusterbetrieb
Standalone-Modus
Konfiguration …-ha.xml
Kein gemeinsames Deployment!
Autodeployment möglich.
9
StandaloneServer
StandaloneServer
StandaloneServer
JBoss 7 als Plattform für hochverfügbare Anwendungen
JBoss 7 im Clusterbetrieb
Domänen-Modus
Profil ha oder full-ha
Gemeinsames Deploymentmittels Admin-Tools
Kein Autodeployment
10JBoss 7 als Plattform für hochverfügbare Anwendungen
JBoss 7 im Clusterbetrieb
11
JGroups
Infinispan
Stat
eful
Sess
ion B
eans
Hib
ernat
e(J
PA)
Web
Sess
ion
Hor
net
Q(J
MS)
JBoss 7 als Plattform für hochverfügbare Anwendungen
Konfiguration eines Clusters
Domain
Server Group imProfil ha oder full-ha
12JBoss 7 als Plattform für hochverfügbare Anwendungen
Konfiguration eines Clusters
Demo:
Master auf Windows-PC
2 virtuelle Linux-Maschinen mit je 2 Slaves
13JBoss 7 als Plattform für hochverfügbare Anwendungen
Web-Anwendungen im JBoss-7-Cluster
Lastverteilung mittels mod_cluster möglich
Dynamische Konfiguration
Lastverteilung mit serverbasierten Metriken
HTTP, HTTPS oder AJP
14
Apache HTTP Server
10.1.2.100JBoss1
10.1.2.101JBoss2
10.1.2.102JBoss3
HTTP/HTTPS/AJPHTTP/HTTPS
JBoss 7 als Plattform für hochverfügbare Anwendungen
Web-Anwendungen im JBoss-7-Cluster
Demo:
Clusterfähige Web-Anwendung im JBoss-Cluster
Apache Webserver mit mod_cluster auf Windows-PC
15JBoss 7 als Plattform für hochverfügbare Anwendungen
EJBs im JBoss-7-Cluster
Proxies implementieren Lastverteilungsverfahren
Erster Zugriff auf beliebigen Knoten
Weitere Zugriffe durch Proxy verteilt
Kein externer Loadbalancer nötig!
Lastverteilung nur bei Remote-Zugriffen
16
Node 2EJB
Node 1EJBClient
Proxy
JBoss 7 als Plattform für hochverfügbare Anwendungen
EJBs im JBoss-7-Cluster
Demo:
Remote-Aufruf einer Stateless Session Bean
Remote-Aufruf einer Stateful Session Bean
17JBoss 7 als Plattform für hochverfügbare Anwendungen
Messaging im JBoss-7-Cluster
Verbindungsaufbau (ConnectionFactory, Connection) kann beliebigen Knoten nutzen
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
18JBoss 7 als Plattform für hochverfügbare Anwendungen
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!
19JBoss 7 als Plattform für hochverfügbare Anwendungen
JPA-Entities im JBoss-7-Cluster
Profitieren nur indirekt
Lastverteilung �Webanwendung bzw. EJBs
Failover � Datenbank
Performanceerhöhung2nd Level Cache
Query Cache
20JBoss 7 als Plattform für hochverfügbare Anwendungen
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
Andere Verfahrenmöglich, aberselten sinnvoll
21
JBoss1
L2C
JBoss2
L2C
JBoss3
L2C
JBoss 7 als Plattform für hochverfügbare Anwendungen
Infinispan-Repl.-Verfahren
Session-Replikation
Default: An alle, asynchronSkaliert nicht
Hohe Verfügbarkeit
Synchron
Distributed1 … n Kopien
Skaliert
Verringerte Verfügbarkeit
22JBoss 7 als Plattform für hochverfügbare Anwendungen
Session Replication
Für Web-App in web.xml aktivieren
Für EJBs serverabhängig
23
<web-app …>
…
<distributable />
<jboss …>
<jee:assembly-descriptor>
<c:clustering>
<jee:ejb-name>CounterBean</jee:ejb-name>
<c:clustered>true</c:clustered>
</c:clustering>
JBoss 7 als Plattform für hochverfügbare Anwendungen
Session Replication
Nur Serializable!
Fat Session Problem
Braucht N-fach Speicher
Skaliert nicht, wenn Replikation an alle
Unterschiedliche Trigger
Verschiedene Granularitäten
24JBoss 7 als Plattform für hochverfügbare Anwendungen
Schön, dass Sie da waren!
Weitere Informationsmöglichkeiten:• Orientierungspunkte - powered by OIO
www.oio.de/vortrag-mannheim/orientierungspunkt-java-xml-vortrag-kostenlos.htm
• Expertenkreis Javahttp://expertenkreisjava.blogspot.de
• Schulung: Entwicklung und Betrieb von Anwendungen auf JBoss AS 7http://www.oio.de/seminar/open-source/jboss-schulung.htm
dirk.weil@gedoplan.de
top related