Erweitertes Caching

Caching-Proxy-Cluster mit Lastausgleich

Eine erweiterte Caching-Funktionalität erhalten Sie, wenn Sie Caching Proxy als Reverse Proxy zusammen mit der Komponente Load Balancer verwenden. Durch die Kombination von Caching- und Lastausgleichsfunktionen erhalten Sie eine effiziente und einfach zu handhabende Infrastruktur für Webauftritte.

Abb. 4 zeigt, wie Sie Caching Proxy mit Load Balancer kombinieren können, um Webinhalte selbst bei hohem Bedarf effizient bereitzustellen. In dieser Konfiguration ist der Proxy-Server (4) so konfiguriert, dass er die Anforderungen abfängt, deren URL den Hostnamen eines Cluster von Inhaltshosts (7) enthält, in dem Load Balancer (6) für den Lastausgleich zuständig ist.

Abbildung 4. Caching Proxy als Proxy-Server für einen Cluster mit Lastausgleich
Dieses Bild zeigt den Proxy-Server in seiner Funktion als stellvertretender Server für einen Cluster mit Lastausgleich.

Wenn ein Client (1) die Datei X anfordert, wird die Anforderung über das Internet (2) gesendet und erreicht das interne Unternehmensnetz über das Internet-Gateway (3) des Unternehmens. Der Proxy-Server fängt die Anforderung ab, generiert eine neue Anforderung mit seiner eigenen IP-Adresse als Ursprungsadresse und sendet die neue Anforderung an den Load Balancer an die Adresse des Clusters. Load Balancer verwendet seinen Algorithmus für Lastausgleich, um den Inhaltshost zu ermitteln, der zum gegebenen Zeitpunkt am besten für die Verarbeitung der Anforderung von Datei X geeignet ist. Der Inhaltshost gibt die Datei X an den Proxy-Server zurück, anstatt sie über Load Balancer weiterzuleiten. Der Proxy-Server bestimmt, ob die Datei im Cache gespeichert wird, und liefert die Datei wie zuvor beschrieben an den Endbenutzer.

Dynamischen Inhalt zwischenspeichern

Erweiterte Caching-Funktionen werden auch vom Plug-in Dynamic Caching von Caching Proxy bereitgestellt. Zusammen mit WebSphere Application Server verwendet, kann Caching Proxy dynamische Inhalte in Form von JSPs (JavaServer Pages) und Servlet-Antworten, die von einem WebSphere Application Server generiert werden, im Cache speichern, bereitstellen und ungültig machen (invalidieren).

Im Allgemeinen müssen dynamische Inhalte mit unbegrenzter Verfallszeit als "nicht Cache-fähig" gekennzeichnet werden, weil die zeitbasierte Standardverfallslogik für Cache-Einträge nicht sicherstellen kann, dass derartige Inhalte in angemessener Zeit aus dem Cache entfernt werden. Die ereignisgesteuerte Verfallslogik des Plug-in Dynamic Caching hingegen unterstützt das Caching von Inhalten mit unbestimmter Verfallszeit durch Proxy-Server. Das Caching solcher Inhalte an den Grenzen (Edge) des Netzes entlastet die Inhaltshosts insofern, dass Application Server nicht wiederholt abgefragt werden müssen, um Clientanforderungen zu bedienen. Dies kann folgende Vorteile haben:

Das Caching von Servlet-Antworten eignet sich ideal für dynamisch erstellte Web-seiten, deren Verfallszeit auf der Anwendungslogik oder auf einem Ereignis, z. B. der Nachricht von einer Datenbank, basiert. Obwohl die Lebensdauer einer solchen Seite begrenzt ist, kann der Wert für die Lebensdauer (TTL, Time-to-Live) zum Zeitpunkt der Erstellung nicht festgelegt werden, weil der Auslöser für den Verfall nicht im Vorhinein bekannt ist. Wird die Lebensdauer für solche Seiten auf null gesetzt, wirkt sich das Bereitstellen dynamischer Inhalte extrem nachteilig auf die Inhaltshosts aus.

Zuständig für die Synchronisation des dynamischen Cache von Caching Proxy und Application Server sind beide Systeme. Beispielsweise kann eine öffentliche Web- seite, die von einer Anwendung dynamisch erstellt wurde, die aktuelle Wettervorhersagen meldet, von Application Server exportiert und von Caching Proxy im Cache gespeichert werden. Caching Proxy kann anschließend die Ausführungsergebnisse der Anwendung so oft an viele verschiedene Benutzer liefern, bis er darüber benachrichtigt wird, dass die Seite ungültig ist. Der Inhalt im Caching-Proxy-Cache für Servlet-Antworten bleibt so lange gültig, bis der Proxy-Server einen Eintrag löscht, weil der Cache überlastet ist, bis das von der Anweisung ExternalCacheManager in der Konfigurationsdatei von Caching Proxy gesetzte Standardzeitlimit abläuft oder Caching Proxy eine Invalidierungsnachricht empfängt, in der er zum Löschen des Inhalts aus dem Cache angewiesen wird. Invalidierungsnachrichten stammen immer vom WebSphere Application Server, der Eigner des Inhalts ist, und werden an jeden konfigurierten Caching Proxy weitergegeben.

Anmerkung:
Dynamisch generierte private Seiten (beispielsweise eine Seite, die den Inhalt des elektronischen Warenkorbs eines Benutzers anzeigt) können und sollten im Allgemeinen von Caching Proxy nicht im Cache gespeichert werden. Caching Proxy kann private Seiten nur dann im Cache speichern und bereitstellen, wenn er für die Übernahme von Authentifizierungs- und Berechtigungsaufgaben konfiguriert ist und auf diese Weise sicherstellen kann, dass die privaten Seiten nur den vorgesehenen Benutzern bereitgestellt werden.

Zusätzliche Caching-Funktionen

Caching Proxy stellt weitere wichtige Funktionen für erweitertes Caching bereit: