Loadbalancing und Clustering mit Tomcat 6

Ähnliche Dokumente
Tomcat Konfiguration und Administration

Skalierbare Webanwendungen mit Apache und Apache Tomcat. W3L AG

JBoss 7 als Plattform für hochverfügbare Anwendungen

Entwicklungen bei der Linux Clustersoftware

HighQSoft GmbH AVALON Distributor. Skalierbarkeit und Ausfallsicherheit. Dieter Müller

Kommunikationsübersicht XIMA FORMCYCLE Inhaltsverzeichnis

JSP und Servlet Programmierung

Installation des GeoShop Redirector für Apache (Stand ) ================================================================

Man liest sich: POP3/IMAP

Liferay Setup an der Humboldt-Universität

11.1 Indirektes Binden (3) 11.1 Indirektes Binden (4) Objektadapterkonfiguration. Unmittelbarer Vorteil des indirekten Bindens

Konfiguration und Deployment einer hochverfügbaren ADF Anwendung

IMAP und POP. Internet Protokolle WS 12/13 Niklas Teich Seite 1

MSXFORUM - Exchange Server 2003 > SMTP Konfiguration von Exchange 2003

Mobile Anwendungen Google Cloud Messaging

Session Storage im Zend Server Cluster Manager

Neuerungen bei Shibboleth 2

Lokale Installation von DotNetNuke 4 ohne IIS

Herzlich Willkommen! eine praxisnahe Übersicht. Mit Java ins Web - mb@bebox.franken.de (c) Michael Behrendt -

Uni-Firewall. Absicherung des Überganges vom Hochschulnetz zum Internet am Wingate (Helmut Celina)

swissdec-adapter Installationsanleitung für Patchrelease Versionsgeschichte Version Marco Stettler Patchversion 2.

Anleitung zur Nutzung des SharePort Utility

How-to: Webserver NAT. Securepoint Security System Version 2007nx

LOAD BALANCING LASTVERTEILUNG BEI INTERNETANWENDUNGEN

Einrichtung von radsecproxy. Dipl.-Math. Christian Strauf Rechenzentrum TU Clausthal

Echtzeitanomalieerkennung für Internetdienste (Abschlussvortrag)

Step by Step Webserver unter Windows Server von Christian Bartl

Bedienungsanleitung für den SecureCourier

CCNA Exploration Network Fundamentals. ARP Address Resolution Protocol

1 Hochverfügbarkeit. 1.1 Einführung. 1.2 Network Load Balancing (NLB) Quelle: Microsoft. Hochverfügbarkeit

Adami CRM - Outlook Replikation User Dokumentation

Dieses HowTo darf nicht vervielfältigt oder veröffentlich werden ohne Einverständnis des Erstellers. Alle Angaben ohne Gewähr.

Alexandru Arion, Benjamin Schöllhorn, Ingo Reese, Jürgen Gebhard, Stefan Patsch, Stephan Frank

Session Beans & Servlet Integration. Ralf Gitzel ralf_gitzel@hotmail.de

Die Installation eines MS SQL Server 2000 mit SP3a wird in diesem Artikel nicht beschrieben und vorausgesetzt.

Konfigurationsanleitung Fax over IP (T.38) und CAPI Fax Server (T.30) Graphical User Interface (GUI) Seite - 1 -

CMS.R. Bedienungsanleitung. Modul Cron. Copyright CMS.R Revision 1

SolarWinds Engineer s Toolset

Die Installation des GeoShop Redirector für IIS (Internet Information Server, Version 4.0, 5.0 und 6.0) umfasst folgende Teilschritte:

Senden von strukturierten Berichten über das SFTP Häufig gestellte Fragen

Wo finde ich die Software? - Jedem ProLiant Server liegt eine Management CD bei. - Über die Internetseite

AS 7 / EAP 6 - Clustering. h3p://blog.akquinet.de

FAQ IMAP (Internet Message Access Protocol)

ARCHITEKTUR VON INFORMATIONSSYSTEMEN

1 Belastung. 1.1 Standortbestimmung 1.2 Belastungsvorhersage 1.3 Favoriten

Dokumentation EGVP-Übertmittlungsfehler bei Server-Engpässen Vorgehensweise Seite 1 von 5

Verteilte Systeme: Übung 4

OS IDE Webserver Integration des Webservers in die IDE Wireshark Webserver II Dynamisches Webprojekt in Eclipse

Urlaubsregel in David

Version Deutsch In diesem HOWTO wird beschrieben wie Sie Ihren Gästen die Anmeldung über eine SMS ermöglichen.

Tools are a IT-Pro's Best Friend Diverse Tools, die Ihnen helfen zu verstehen, was auf dem System passiert oder das Leben sonst erleichtern.

Themen. Apache Webserver Konfiguration. Verzeichnisse für Web-Applikationen. Server Side Includes

Vitalograph Spiroctrac V Hinweise zur Mehrplatz-/Serverinstallation

Bernd Blümel. Verschlüsselung. Prof. Dr. Blümel

Beschreibung Installation SSH Server für sicher Verbindung oder Bedienung via Proxyserver. (Version 5.x)

Dieser Artikel beschreibt die Veröffentlichung eines Microsoft SQL Server 2000 über einen ISA Server 2004.

IEEE 802.1x Authentifizierung. IEEE 802.1x Authentifizierung IACBOX.COM. Version Deutsch

Web Services stellen eine Integrationsarchitektur dar, die die Kommunikation zwischen verschiedenen Anwendungen

Der konsequente Verzicht auf alles Unnötige verhindert Komplexität, den wohl größten Kostentreiber im Unternehmen. (Peter May, Lernen von den

PhPepperShop Modul Remarketing. Datum: 13. September 2013 Version: 1.2. Warenkorb Wiederherstellung. Bestellabbruch Benachrichtigung.

Acceptor-Connector. Acceptor-Connector

Firewall Implementierung unter Mac OS X

CNAME-Record Verknüpfung einer Subdomain mit einer anderen Subdomain. Ein Alias für einen Domainnamen.

EIDAMO Webshop-Lösung - White Paper

Statuten in leichter Sprache

Sparkasse Duisburg. versenden aber sicher! Sichere . Anwendungsleitfaden für Kunden

Internet Protokolle für Multimedia - Anwendungen

Trend Micro Worry-Free Business Security 8.0 Tipps und Tricks zur Erstinstallation

Konfiguration des ewon GSM Modems Kurzbeschreibung zum Aufbau einer GSM Verbindung

Folgende Voraussetzungen für die Konfiguration müssen erfüllt sein: - Ein Bootimage ab Version Optional einen DHCP Server.

OWASP Stammtisch München Sep 2014 XSS und andere Sicherheitslücken aus der Perspektive des Programmcodes

PC-Kaufmann Supportinformation - Proxy Konfiguration für Elster

MSXFORUM - Exchange Server 2003 > Konfiguration NNTP unter Exchange 2003

TechNote: TWINFAX Protokollierungen aktivieren

TK-Schnittstelleneinrichtung. Redundante Softswitches

Infomelde-Server Einstellungen

DNS-325/-320 und FXP

Übung - Konfigurieren einer Windows 7-Firewall

2. Kommunikation und Synchronisation von Prozessen 2.2 Kommunikation zwischen Prozessen

Pro/INTRALINK Lehrplan-Handbuch

Clustering von Application Servern am Beispiel von JBoss 3.2

ANLEITUNG PREMIUM-PROFIL

2 Die Terminaldienste Prüfungsanforderungen von Microsoft: Lernziele:

Nachricht der Kundenbetreuung

Lexware professional und premium setzen bis einschließlich Version 2012 den Sybase SQL-Datenbankserver

Multicast Security Group Key Management Architecture (MSEC GKMArch)

Peer-to-Peer Internet Telephony using the Session Initiation Protocol (SIP)

Reporting Services und SharePoint 2010 Teil 1

Tipps & Tricks: März Parameter der tnsnames.ora im RAC Umfeld. 1. Parameter: Bereich: Erstellung: RAC 03/2011 SH. Letzte Überarbeitung: 11.

HOWTO Update von MRG1 auf MRG2 bei gleichzeitigem Update auf Magento CE 1.4 / Magento EE 1.8

PROFIS Software Lösungen

STARFACE SugarCRM Connector

Solaris Cluster. Dipl. Inform. Torsten Kasch Bielefeld.DE> 8. Januar 2008

Folgende Einstellungen sind notwendig, damit die Kommunikation zwischen Server und Client funktioniert:

Rechnernetze Praktikum Versuch 8: Zertifikate, Sicherheit in öffentlichen Netzen

ICMP Internet Control Message Protocol. Michael Ziegler

serverlist serveridgetbyport serverdelete servercreate serverstart serverstop serverprocessstop serverinfo serverrequestconnectioninfo serveredit

Anforderungen BauPlus

Fachapplikationen in heterogenen IT Landschaften

Transkript:

Loadbalancing und Clustering mit Tomcat 6 Java Forum Stuttgart 3. Juli 2008 Michael Heß ORDIX AG, Paderborn mhe@ordix.de www.ordix.de

Agenda Zielsetzung des Vortrags Webserver Integration Loadbalancing Clustering Resümee 1

Zielsetzung des Vortrags vorher nachher Client Client Webserver Tomcat Session Tomcat A Session 1 Tomcat B Session 1 2

Agenda Zielsetzung des Vortrags Webserver Integration Loadbalancing Clustering Resümee 3

Webserver Integration Lastverteilung Transparenter Failover Als Webservermodul realisiert - Tomcat JK Connector (Apache, IIS, SunOne) - mod_proxy (Apache 2.2 spezifisch) 4

Kommunikation via AJP Apache JServ Protocol v1.3 (ajp13) AJP ist ein binäres Protokoll Tomcat -> AJP Connector Webserver -> JK Modul 5

Beteiligte Komponenten Client Webserver JK Connector AJP Connector node1 Session 6

AJP Connector Ermöglicht die Kommunikation via AJP Konfiguration analog zum HTTPConnector - port - minsparethreads - maxsparethreads - maxthreads 7

JK Connector Installation spezifisch für den jeweiligen Server Implementiert u. a. die Logik für Lastverteilung Steuert die Zuordnung URI -> Tomcat-Instanz Tomcat-Instanzen werden als Worker bezeichnet Webserver definiert seine Worker 8

Workerkonfiguration In workers.properties Position im FS abhängig vom Webservertyp Auflistung aller definierten Worker worker.list=node1,node2,... Beschreibung einzelner Worker worker.<name>.<direktive>=<wert> Gängige Direktiven: - Type (ajp13, lb, status) - Host - Port ( AJP Connector Port, default 8009) 9

Beispiel Konfiguration worker.list=node1,node2 worker.node1.type=ajp13 worker.node1.host=192.168.1.1 worker.node2.type=ajp13 worker.node2.host=192.168.1.2 10

Worker Mapping Welcher Request wird wohin geschickt? Spezifisch in Konfiguration des Webserver Generisch in urimapping.properties <URI>=<Worker> /myapp = node1 /myapp/* = node1 *.jsp = node1 11

Request Zuordnung Request: http://site1/myapp Client urimapping.properties: /myapp = node1 Webserver JK Connector workers.properties: worker.node1.type = ajp13 worker.node1.host = 192.168.99.120 AJP Connector node1 Session 12

Agenda Zielsetzung des Vortrags Webserver Integration Loadbalancing Clustering Resümee 13

Loadbalancer Spezieller Worker Type lb Direktive balance_workers listet Instanzen Verschiedene Verteilungsmethoden - Requests, Sessions, Traffic, Busyness Lastverteilung gesteuert über worker.<name>.lbfactor 14

Beispiel Konfiguration Loadbalancer worker.list=lb worker.lb.type=lb worker.lb.balance_workers=node1,node2 [...] worker.node1.lbfactor=2 [...] worker.node2.lbfactor=3 15

Sticky Sessions Loadbalancer muss bestehende Sessions dem zugehörigen Knoten zuordnen SessionID enthält jvmroute des Engine Elements worker Name == jvmroute Attribut der Engine Frage: Was passiert bei Ausfall des zugehörigen Knotens? sticky_session_force Direktive des Loadbalancer - true -> HTTP Code 500 an Client senden - false -> Failover auf anderen Knoten (Verlust der Session) 16

Request Zuordnung mit Loadbalancer mehrere Requests für: http://site1/myapp Clients urimapping.properties: /myapp = lb Webserver workers.properties: LB Worker worker.lb.type=lb worker.lb.balance_workers=node1, node2 worker.lb.sticky_session=true worker.lb.sticky_session_force=true [...] node1 Session 1 node2 Session 2 17

Agenda Zielsetzung des Vortrags Webserver Integration Loadbalancing Clustering Resümee 18

Motivation Sessions an Worker gebunden Ausfall des Workers = Verlust der Session Lösung: Cluster mit Sessionreplikation Jeder Clusterknoten kennt jede Session 19

Vorrausetzungen Alle Session-Elemente sind Serializable Die Anwendung ist verteilbar deklariert - im Deploymentdeskriptor: <distributable/> - in Contextdefinition: distributable="true" 20

Funktionsweise des Clusters Ziel: Nachrichtenaustausch zwischen Workern Mitgliedschaft dynamisch über UDP Multicasting Gegenseitige Überwachung via Heartbeat Nachrichtenversand zwischen Knoten via TCP Sessionreplikation ist eine Anwendungsform 21

Überblick Nachrichtenversand Session Session (repl.) Cluster (Node 1) Valve Manager Channel Cluster (Node 2) Manager ClusterListener Channel 22

Valve Fügen sich wie normale Valves in die äußere Requestpipeline ein ReplicationValve - Replikation via Manager anstoßen Session Valve Manager Channel - Keine Replikation von statischem Content 23

Manager Wählt clusterfähigen SessionManager - DeltaManager all-to-all Replikation skaliert nicht gut, aber Gruppenbildung möglich Session Valve Manager Channel homogenes Layout erforderlich - BackupManager (ab Tomcat 6) single-backup Replikation heterogenes Layout möglich Kann pro Context individuell eingestellt werden 24

Channel Basis für Kommunikation innerhalb des Clusters Teil des Apache Tribes Framework Konfiguration durch diverse Unterelemente (s. u.) Session Valve Manager Channel 25

ClusterListener Registrieren sich am Cluster Warten auf Nachrichten Session Manager Cluster Listener ClusterSessionListener Channel - Bindeglied zwischen Cluster und Deltamanager - Weist Deltamanager an, lokale Sessions gemäß empfangener Nachrichten zu aktualisieren 26

Channel Aufbau Membership Channel Receiver Sender Transport Interceptor 27

Channel Verschiedene Versandarten (channelsendoptions) Membership Receiver Channel - Asynchronous - Asynchronous Acknowledge Sender Interceptor Transport - Synchronized Acknowledge 28

Membership Dezentrale Cluster-Mitgliedschaft Membership Channel Versendet Heartbeat via Multicast Heartbeat enthält Kontaktdaten (Receiver) Receiver Sender Transport Interceptor Attribute auf allen Knoten gleich - McastAdresse und Port - frequency Heartbeatfrequenz in ms - droptime Timeout in ms für toten Nachbar Hat keine Rolle beim Nachrichtenversand 29

Receiver Empängt Clusternachrichten via TCP Membership Channel non-/blocking Varianten Anzahl Threads für Listener individuell Receiver Sender Transport Interceptor - Anzahl Knoten 1 - Bei parallelem Nachrichtenversand ggf. mehr 30

Sender Nachrichtenversand in den Cluster Membership Channel Parallel Concurrent Messaging - Parallel 1 Nachricht an n Empfänger Receiver Sender Transport Interceptor - Concurrent n Nachrichten an 1 Empfänger Poolsize steuert die maximalen Concurrent Messages pro Knoten 31

Interceptor Manipulation von Nachrichten (Rx/Tx) Membership Channel Interceptor bilden einen Stack Reihenfolge in der server.xml ist entscheidend Receiver Sender Transport Interceptor Beispiel: TcpFailureDetector - UDP Timeout erreicht - Prüfung via TCP, ob der Knoten tatsächlich tot ist 32

Gesamtübersicht Clusteraufbau Manager Cluster Membership Channel Receiver Sender Transport Interceptor ClusterListener Valve 33

Performance vs. Replikation Einbußen sind moderat, aber spürbar Abhängig von vielen Parametern, u. a. - Anzahl der Knoten - Anzahl der Nachrichten - Größe der Nachrichten (Session-Elemente) Individuelle Anpassungen an Anwendung erforderlich 34

Request Zuordnung bei Ausfall Request: http://site1/myapp?jsessionid=session1.node1 Client Webserver Versuch Request an Node 1 weiterzuleiten, dann Failover auf Node 2 LB Worker Node 2 kennt Session von Node 1 und bearbeitet den Request (und führt ggf. Rebinding der Sitzung durch) Xnode1 Session 1 node2 Session 1 35

Agenda Zielsetzung des Vortrags Webserver Integration Loadbalancing Clustering Resümee 36

Resümee JK Connector verteilt Requests Sessions werden auf zugehörigen Knoten geleitet Cluster Knoten bilden Multicast Verbund Client Webserver Knoten benachrichtigen sich gegenseitig über geänderte Sessions Bei Ausfall eines Knotens wird der Request auf einen anderen Knoten geleitet Tomcat A Session 1 Tomcat B Session 1 37

Vielen Dank für Ihre Aufmerksamkeit! einfach.gut.beraten. 38