Upload
hwilming
View
1.427
Download
1
Embed Size (px)
DESCRIPTION
Die JBoss Enterprise Application Platform (und das Upstream Projekt Wildfly aka JBoss AS 7) 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. Im Vortrag werden die grundlegenden Konzepte beleuchtet und während des Vortrages wird gezeigt wie ein Cluster im Domain Mode mit der Enterprise Application Platform betrieben werden kann.
Citation preview
Eigenscha:en Java Enterprise Edi?on
zuverlässig
sicher skalierbar
wartbar
EAP6 != EAP5 +1
Clustering Gruppe von Servern, die gleiche Dienste erbringen. Client sieht nur den Cluster nicht die Server.
Ziele: § Fehlertoleranz durch Ausblenden
fehlerha:er Server (⇒ Hochverfügbarkeit, HA)
§ Lastausgleich durch Verteilung an Server Knoten (⇒ Skalierbarkeit)
Lastverteilung ohne Session Replika?on
Skalierung
Demo
mod_cluster
AJP Request MCMP Worker, Context, Load-‐Metrics
HTTP / HTTPS
mod_cluster § Dynamische Konfigura?on der HTTPD worker Adver?se mi`els Mul?cast
§ Intelligente Lastverteilung Einbezug von Lastverteilungsmetriken (cpu, mem, heap, sessions, receive-‐traffic, send-‐traffic, requests, busyness)
§ Load-‐Balancing Groups (aka. Domäne)
mod_cluster vs. mod_jk § mod_jk benö?gt sta?sche Konfigura?on § Cluster Knoten hinzufügen oder engernen (worker.proper?es) § Anwendung hinzufügen oder engernen
(uriworkermap.proper?es)
Session Replika?on
Demo
Subsysteme
Cluster–fähige Applika?onen Clustering einer EJB Session-‐Bean
@Stateless
@Remote(ClusteredStateless.class) @org.jboss.ejb3.annotation.Clustered public class ClusteredStatelessBean implements ClusteredStateless { ... }
Zustandslose Session Beans à dynamische Lastverteilung auf Clusterknoten
Zustandsbeha:ete Session Beans à Session Affinity à Failover
Alterna?v: Deployment-‐Descriptor ( META-‐INF/jboss-‐ejb3.xml)
HTTP Session Replika?on
Replika?on der HTTP-‐Session stellt sicher, dass die Sessions der Klienten auf anderen Cluster-‐Knoten verfügbar sind
<web-app> <distributable/> </web-app>
à WEB-‐INF/web.xml
Cluster Kommunika?on
JGroups Transport
UDP
TCP
TUNNEL
Replica?on Um Hochverfügbarkeit zu unterstützen, müssen die Daten innerhalb des Clusters repliziert werden
Infinispan wird intern für die Replika?on verwendet
Replica?on -‐ Cache mode
Distribu?on-‐ Cache mode
L1 -‐ Cache mode
Invalida?on -‐ Cache mode
Cluster Par??onen
Op?mierung
• JGroups Distribu?on enthält vorkonfigurierte Stacks für unterschiedliche Cluster Topologien – UDP vs. TCP
• Infinispan – ASYNC vs. SYNC – HTTP Session Replica?on
• Replica?on Trigger • Replica?on Granularity
Messaging (HornetQ)
1. Zuverlässigkeit bereits empfangene Nachrichten werden garan?ert zugestellt (gehen nicht verloren)
2. höherer Nachrichtendurchsatz 3. Lastverteilung 4. automa9sches Failover bestehender Verbindungen
HornetQ -‐ Lastverteilung
HornetQ -‐ Failover
• Ab JBoss EAP 6.1 (HornetQ 2.3) -‐ In-‐Memory Message Replica?on
7.2.0.Final
8.0.0 alpha1
6.1.0 alpha
6.1.0 beta
6.1.0 Final
7.x
QA
Zero-‐Dollar-‐Subscrip9on for Development Payed-‐Subscrip9on with Support for Produc9on
Free
akquinet AG – Standort Berlin
JAVA
Beratung und Coaching
Individuelle Lösungen
Betriebsführung
Schulungen
Produktberatung