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.
Dirk Weil | GEDOPLANJava EE hochverfügbar
dirk.weil@gedoplan.deDirk Weil• GEDOPLAN GmbH, Bielefeld• Java EE seit 1998• Konzeption undRealisierung• Vorträge• Seminar...
dirk.weil@gedoplan.deHochverfügbarkeit• Lastverteilung– Große Menge von Anfragen– Verteilung auf mehrereCluster-Knoten– Ve...
dirk.weil@gedoplan.deHochverfügbarkeit• Ausfallsicherheit– Mehrere redundante Cluster-Knoten– Transparentes „Fail-Over“ be...
dirk.weil@gedoplan.deCluster-Architekturen• EinfacherCluster-Aufbau5ClientLoadBalancerDBClusterServer 1Web LogicServer 1We...
dirk.weil@gedoplan.deCluster-Architekturen• Mehrstufiger Cluster-Aufbau6Cluster 2ClientLoadBalancerDBServer 3LogicServer 3...
dirk.weil@gedoplan.deCluster-Architekturen• SegmentierterCluster-Aufbau7Cluster 1Server 1Web LogicServer 1Web LogicServ-le...
dirk.weil@gedoplan.deCluster-Architekturen• Load-Balancer = Illusion „1 Server“• Implementierungsvarianten:– Hardware– Web...
dirk.weil@gedoplan.deCluster-Architekturen• Lastverteilungsverfahren:– Round-Robin– Random– Gewichtet• Sticky Session9Load...
dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb• „Work in Progress“• Viele Änderungen7.0.x 7.1.0 7.1.1 ( 7.1.3)• Dokumentat...
dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb• Standalone-Modus– Konfiguration …-ha.xml– Kein gemeinsames Deployment!– Au...
dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb• Domänen-Modus– Profil ha oder full-ha– Gemeinsames Deploymentmittels Admin...
dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb13JGroupsInfinispanStatefulSessionBeansHibernate(JPA)WebSessionHornetQ(JMS)
dirk.weil@gedoplan.deKonfiguration eines Clusters• Domain• Server Group imProfil haoder full-ha14 Java EE hochverfügbar
dirk.weil@gedoplan.deKonfiguration eines Clusters• Demo:– Master aufWindows-PC– 2 virtuelleLinux-Maschinenmit je 2 Slaves1...
dirk.weil@gedoplan.deWeb-Anwendungenim JBoss-7-Cluster• Lastverteilung mittelsmod_cluster möglich– Dynamische Konfiguratio...
dirk.weil@gedoplan.deWeb-Anwendungenim JBoss-7-Cluster• Demo:– Clusterfähige Web-Anwendungim JBoss-Cluster– Apache Webserv...
dirk.weil@gedoplan.deEJBs im JBoss-7-Cluster• Proxies implementierenLastverteilungsverfahren• Erster Zugriff auf beliebige...
dirk.weil@gedoplan.deEJBs im JBoss-7-Cluster• Demo:– Remote-Aufruf von Stateless und StatefulSession Beans19 Java EE hochv...
dirk.weil@gedoplan.deMessaging im JBoss-7-Cluster• Verbindungsaufbau(ConnectionFactory, Connection)geschieht zufällig zu e...
dirk.weil@gedoplan.deMessaging im JBoss-7-Cluster• Meldungsempfang– Nur von einem Knoten– aber: Knoten ohne passende Consu...
dirk.weil@gedoplan.deMessaging im JBoss-7-Cluster• Ein Ausfall eines Knotens …• … wird serverseitig automatischbehandelt– ...
dirk.weil@gedoplan.deMessaging im JBoss-7-Cluster• Ein Ausfall eines Knotens …• … führt clientseitig zum Abbruch– sofortig...
dirk.weil@gedoplan.deJPA-Entitiesim JBoss-7-Cluster• Profitieren nur indirekt– Lastverteilung Webanwendung bzw.EJBs– Failo...
dirk.weil@gedoplan.deJPA-Entitiesim JBoss-7-Cluster• Default-Verfahren: Cache mit Invalidierung– Jeder Knoten füllt den 2n...
dirk.weil@gedoplan.deInfinispan-Repl.-Verfahren• Session-Replikation– Default: An alle, asynchron• Skaliert nicht• Hohe Ve...
dirk.weil@gedoplan.deSession Replication• Für Web-App inweb.xml aktivieren• Für EJBs serverabhängigJava EE hochverfügbar27...
dirk.weil@gedoplan.deSession Replication• Nur Serializable!• Fat Session Problem• Braucht N-fach Speicher• Skaliert nicht,...
dirk.weil@gedoplan.deGlassFish• Domäne– DedizierterAdmin-Server– Vollständige Kontrolleder Cluster-Serverper SSH möglichJa...
dirk.weil@gedoplan.deGlassFish• Lastverteilung & Failover– Web-App: HTTP Load Balancer Plug-In– EJBs: InitialContext: Rand...
dirk.weil@gedoplan.deGlassFish• Replikationsverfahren– In Memory– Je ein Replikat– Consistent HashAlgorithmJava EE hochver...
dirk.weil@gedoplan.deWebLogic• Domäne– Dedizierter Admin-Server– Rechnerübergreifendmittels Node Manager– Deployment auch ...
dirk.weil@gedoplan.deWebLogic• Lastverteilung & Failover– Web-App: Webserver-Plugin– EJBs: Replica-aware Stubs– JMS: Distr...
dirk.weil@gedoplan.deWebLogic• Replikationsverfahren– In Memory (Primär/Sekundär)– Filesystem– DatenbankJava EE hochverfüg...
Schön, dass Sie da waren!Fr, 15:30: Java EE – Lessons Learneddirk.weil@gedoplan.de
Nächste SlideShare
Wird geladen in …5
×

Java EE hochverfügbar

546 Aufrufe

Veröffentlicht am

Folien zum Vortrag auf der JAX 2013

  • Als Erste(r) kommentieren

Java EE hochverfügbar

  1. 1. Dirk Weil | GEDOPLANJava EE hochverfügbar
  2. 2. dirk.weil@gedoplan.deDirk Weil• GEDOPLAN GmbH, Bielefeld• Java EE seit 1998• Konzeption undRealisierung• Vorträge• Seminare• Veröffentlichungen2 Java EE hochverfügbar
  3. 3. dirk.weil@gedoplan.deHochverfügbarkeit• Lastverteilung– Große Menge von Anfragen– Verteilung auf mehrereCluster-Knoten– VerschiedeneLastverteilungsverfahren– Einzelne Anfrage wird i. d. R. verlangsamt!3 Java EE hochverfügbar
  4. 4. dirk.weil@gedoplan.deHochverfügbarkeit• Ausfallsicherheit– Mehrere redundante Cluster-Knoten– Transparentes „Fail-Over“ beiKnotenausfall– Replikation von Sitzungsdaten4 Java EE hochverfügbar
  5. 5. dirk.weil@gedoplan.deCluster-Architekturen• EinfacherCluster-Aufbau5ClientLoadBalancerDBClusterServer 1Web LogicServer 1Web LogicServlet EJBCDIJPAJMSServer 2Web LogicServer 2Web LogicServlet EJBCDIJPAJMSJava EE hochverfügbar
  6. 6. dirk.weil@gedoplan.deCluster-Architekturen• Mehrstufiger Cluster-Aufbau6Cluster 2ClientLoadBalancerDBServer 3LogicServer 3LogicEJBCDIJPAJMSServer 4LogicServer 4LogicEJBCDIJPAJMSCluster 1Server 1WebServer 1WebServletServer 2WebServer 2WebServletJava EE hochverfügbar
  7. 7. dirk.weil@gedoplan.deCluster-Architekturen• SegmentierterCluster-Aufbau7Cluster 1Server 1Web LogicServer 1Web LogicServ-letEJBCDIJPAJMSServer 2Web LogicServer 2Web LogicServ-letEJBCDIJPAJMSCluster 2Server 3Web LogicServer 3Web LogicServ-letEJBCDIJPAJMSServer 4Web LogicServer 4Web LogicServ-letEJBCDIJPAJMSDBClientLoadBalancerJava EE hochverfügbar
  8. 8. dirk.weil@gedoplan.deCluster-Architekturen• Load-Balancer = Illusion „1 Server“• Implementierungsvarianten:– Hardware– Webserver-Proxy– Cluster-aware Proxies8Load BalancerClient10.1.2.101Server 110.1.2.102Server 210.1.2.103Server 3Java EE hochverfügbar
  9. 9. dirk.weil@gedoplan.deCluster-Architekturen• Lastverteilungsverfahren:– Round-Robin– Random– Gewichtet• Sticky Session9Load BalancerClient10.1.2.101Server 110.1.2.102Server 210.1.2.103Server 3Java EE hochverfügbar
  10. 10. dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb• „Work in Progress“• Viele Änderungen7.0.x 7.1.0 7.1.1 ( 7.1.3)• Dokumentationunvollständig,teilweiseveraltet10 Java EE hochverfügbar
  11. 11. dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb• Standalone-Modus– Konfiguration …-ha.xml– Kein gemeinsames Deployment!– Autodeployment möglich.11StandaloneServerStandaloneServerStandaloneServerJava EE hochverfügbar
  12. 12. dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb• Domänen-Modus– Profil ha oder full-ha– Gemeinsames Deploymentmittels Admin-Tools– Kein Autodeployment12 Java EE hochverfügbar
  13. 13. dirk.weil@gedoplan.deJBoss 7 im Clusterbetrieb13JGroupsInfinispanStatefulSessionBeansHibernate(JPA)WebSessionHornetQ(JMS)
  14. 14. dirk.weil@gedoplan.deKonfiguration eines Clusters• Domain• Server Group imProfil haoder full-ha14 Java EE hochverfügbar
  15. 15. dirk.weil@gedoplan.deKonfiguration eines Clusters• Demo:– Master aufWindows-PC– 2 virtuelleLinux-Maschinenmit je 2 Slaves15 Java EE hochverfügbar
  16. 16. dirk.weil@gedoplan.deWeb-Anwendungenim JBoss-7-Cluster• Lastverteilung mittelsmod_cluster möglich– Dynamische Konfiguration– Lastverteilung mit serverbasierten Metriken– HTTP, HTTPS oder AJP16ApacheHTTP Server10.1.2.101JBoss110.1.2.102JBoss210.1.2.103JBoss3HTTP/HTTPS/AJPHTTP/HTTPSJava EE hochverfügbar
  17. 17. dirk.weil@gedoplan.deWeb-Anwendungenim JBoss-7-Cluster• Demo:– Clusterfähige Web-Anwendungim JBoss-Cluster– Apache Webserver mit mod_cluster aufWindows-PC17 Java EE hochverfügbar
  18. 18. dirk.weil@gedoplan.deEJBs im JBoss-7-Cluster• Proxies implementierenLastverteilungsverfahren• Erster Zugriff auf beliebigen Knoten• Weitere Zugriffe durch Proxy verteilt• Kein externer Loadbalancer nötig!• Lastverteilung nur bei Remote-Zugriffen18Node 2EJBNode 1EJBClientProxyJava EE hochverfügbar
  19. 19. dirk.weil@gedoplan.deEJBs im JBoss-7-Cluster• Demo:– Remote-Aufruf von Stateless und StatefulSession Beans19 Java EE hochverfügbar
  20. 20. dirk.weil@gedoplan.deMessaging 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 werdennicht bedient20 Java EE hochverfügbar
  21. 21. dirk.weil@gedoplan.deMessaging im JBoss-7-Cluster• Meldungsempfang– Nur von einem Knoten– aber: Knoten ohne passende Consumererhalten keine Meldungen21 Java EE hochverfügbar
  22. 22. dirk.weil@gedoplan.deMessaging im JBoss-7-Cluster• Ein Ausfall eines Knotens …• … wird serverseitig automatischbehandelt– Das Lastverteilungsverfahren wirdreorganisiert– Zwischenzeitlich für den ausgefallenenKnoten vorgesehene Meldungen werdenzugestellt, wenn er wieder läuft22 Java EE hochverfügbar
  23. 23. dirk.weil@gedoplan.deMessaging im JBoss-7-Cluster• Ein Ausfall eines Knotens …• … führt clientseitig zum Abbruch– sofortiges Reconnect (an anderen Knoten)möglich• Keine Meldung geht verloren, wennAuslieferung persistent!23 Java EE hochverfügbar
  24. 24. dirk.weil@gedoplan.deJPA-Entitiesim JBoss-7-Cluster• Profitieren nur indirekt– Lastverteilung Webanwendung bzw.EJBs– Failover Datenbank– Performanceerhöhung• 2nd Level Cache• Query Cache24 Java EE hochverfügbar
  25. 25. dirk.weil@gedoplan.deJPA-Entitiesim JBoss-7-Cluster• Default-Verfahren: Cache mit Invalidierung– Jeder Knoten füllt den 2nd Level Cacheselbsttätig– Schreiboperation invalidiert betroffeneEinträge auf den anderenCluster-Knoten• Andere Verfahrenmöglich, aberselten sinnvoll25JBoss1L2CJBoss2L2CJBoss3L2CJava EE hochverfügbar
  26. 26. dirk.weil@gedoplan.deInfinispan-Repl.-Verfahren• Session-Replikation– Default: An alle, asynchron• Skaliert nicht• Hohe Verfügbarkeit– Synchron– Distributed• 1 … n Kopien• Skaliert• Verringerte Verfügbarkeit26 Java EE hochverfügbar
  27. 27. dirk.weil@gedoplan.deSession Replication• Für Web-App inweb.xml aktivieren• Für EJBs serverabhängigJava EE hochverfügbar27<web-app …>…<distributable /><jboss …><jee:assembly-descriptor><c:clustering><jee:ejb-name>CounterBean</jee:ejb-name><c:clustered>true</c:clustered></c:clustering>
  28. 28. dirk.weil@gedoplan.deSession Replication• Nur Serializable!• Fat Session Problem• Braucht N-fach Speicher• Skaliert nicht, wenn Replikation an alle• Unterschiedliche Trigger• Verschiedene GranularitätenJava EE hochverfügbar28
  29. 29. dirk.weil@gedoplan.deGlassFish• Domäne– DedizierterAdmin-Server– Vollständige Kontrolleder Cluster-Serverper SSH möglichJava EE hochverfügbar29Das Bild kann zurzeit nicht angezeigt werden.
  30. 30. dirk.weil@gedoplan.deGlassFish• Lastverteilung & Failover– Web-App: HTTP Load Balancer Plug-In– EJBs: InitialContext: Random nodeEJB Proxy: Sticky / Per-Req. LBTransparent Failover– JMS: Message BrokerVerteilte DestinationsTransparent Failover möglichJava EE hochverfügbar30
  31. 31. dirk.weil@gedoplan.deGlassFish• Replikationsverfahren– In Memory– Je ein Replikat– Consistent HashAlgorithmJava EE hochverfügbar31
  32. 32. dirk.weil@gedoplan.deWebLogic• Domäne– Dedizierter Admin-Server– Rechnerübergreifendmittels Node Manager– Deployment auch aufCluster-Teile möglichJava EE hochverfügbar32
  33. 33. dirk.weil@gedoplan.deWebLogic• Lastverteilung & Failover– Web-App: Webserver-Plugin– EJBs: Replica-aware Stubs– JMS: Distributed DestinationsMigratable JMS ServersJava EE hochverfügbar33
  34. 34. dirk.weil@gedoplan.deWebLogic• Replikationsverfahren– In Memory (Primär/Sekundär)– Filesystem– DatenbankJava EE hochverfügbar34
  35. 35. Schön, dass Sie da waren!Fr, 15:30: Java EE – Lessons Learneddirk.weil@gedoplan.de

×