Interne Strukturen des Cache

Sie sehen die Dokumentation zu Apigee Edge.
Zur Apigee X-Dokumentation
weitere Informationen

In diesem Thema werden die Aufgaben des Cache unter Richtlinien wie der PopulateCache-Richtlinie, LookupCache-Richtlinie, InvalidateCache-Richtlinie und ResponseCache-Richtlinie beschrieben.

Freigegebene und Umgebungs-Caches

Jede von Ihnen konfigurierte Caching-Richtlinie kann einen von zwei Cache-Typen verwenden: einen enthaltenen freigegebenen Cache, auf den Ihre Anwendungen zugreifen können, und einen oder mehrere von Ihnen erstellte, umgebungsbezogene Caches.

  • Gemeinsam genutzter Cache: Standardmäßig haben Ihre Proxys Zugriff auf einen freigegebenen Cache in jeder Umgebung. Der freigegebene Cache eignet sich gut für grundlegende Anwendungsfälle.

    Sie können mit dem freigegebenen Cache nur mithilfe von Caching-Richtlinien und nicht der Verwaltungs-API arbeiten. Wenn eine Caching-Richtlinie den freigegebenen Cache verwenden soll, lassen Sie einfach das <CacheResource>-Element der Richtlinie weg.

  • Umgebungs-Cache: Wenn Sie Cache-Attribute mit von Ihnen ausgewählten Werten konfigurieren möchten, können Sie einen umgebungsbezogenen Cache erstellen. Weitere Informationen zum Erstellen eines Cache finden Sie unter Umgebungs-Cache erstellen und bearbeiten.

    Wenn Sie einen Umgebungscache erstellen, konfigurieren Sie seine Standardattribute. Sie können festlegen, dass eine Caching-Richtlinie den Umgebungscache verwendet. Geben Sie dazu den Cache-Namen im Element <CacheResource> der Richtlinie an.

Informationen zur Cache-Verschlüsselung

Edge for Public Cloud:Der Cache wird nur in PCI- und HIPAA-fähigen Organisationen verschlüsselt. Die Verschlüsselung dieser Organisationen wird während der Bereitstellung der Organisation konfiguriert.

In-Memory- und nichtflüchtige Cache-Ebenen

Die gemeinsam genutzten und Umgebungs-Caches basieren auf einem System auf zwei Ebenen, das aus einer speicherinternen Ebene und einem nichtflüchtigen Speicher besteht. Richtlinien interagieren mit beiden Ebenen als kombiniertes Framework. Edge verwaltet die Beziehung zwischen den Ebenen.

  • Ebene 1 ist ein In-Memory-Cache (L1) für einen schnellen Zugriff. Jeder MP-Knoten (Message Processor) verfügt über einen eigenen In-Memory-Cache, der auf Anfragen schnell reagiert.
    • Auf jedem Knoten ist ein bestimmter Prozentsatz des Arbeitsspeichers für die Verwendung durch den Cache reserviert.
    • Wenn das Arbeitsspeicherlimit erreicht ist, entfernt Apigee Edge Cache-Einträge aus dem Speicher (obwohl sie weiterhin im nichtflüchtigen L2-Cache gespeichert werden), um sicherzustellen, dass Arbeitsspeicher für andere Prozesse verfügbar bleibt.
    • Die Einträge werden in der Reihenfolge seit dem letzten Zugriff entfernt. Die ältesten Einträge werden zuerst entfernt.
    • Diese Caches werden auch durch die Anzahl der im Cache enthaltenen Einträge begrenzt.
  • Ebene 2 ist ein nichtflüchtiger Cache (L2) unter dem In-Memory-Cache. Alle Message Processor-Knoten nutzen gemeinsam einen Cache-Datenspeicher (Cassandra) für nichtfllüchtige Cache-Einträge.
    • Cache-Einträge bleiben auch dann erhalten, wenn sie aus dem L1-Cache entfernt werden, beispielsweise wenn die In-Memory-Limits erreicht wurden.
    • Da der nichtflüchtige Cache von den Message Processors gemeinsam (auch in verschiedenen Regionen) genutzt werden, sind Cache-Einträge verfügbar, unabhängig davon, welcher Knoten eine Anfrage für die im Cache gespeicherten Daten empfängt.
    • Nur Einträge einer bestimmten Größe können im Cache gespeichert werden, und andere Limits für den Cache sind möglich. Weitere Informationen finden Sie unter Cache-Limits verwalten.

Weitere Informationen zu Apigee Edge-Caching im Detail finden Sie in der Apigee-Community.

So verwenden Richtlinien den Cache

Im Folgenden wird beschrieben, wie Apigee Edge Cache-Einträge verarbeitet, während die Caching-Richtlinien ausgeführt werden.

  • Wenn eine Richtlinie einen neuen Eintrag in den Cache schreibt (PopulateCache- oder ResponseCache-Richtlinie):
    1. Edge schreibt den Eintrag nur in den speicherinternen L1-Cache auf dem Nachrichtenprozessor, der die Anfrage verarbeitet hat. Wenn die Speicherlimits für den Message Processor erreicht sind, bevor der Eintrag abläuft, entfernt Edge den Eintrag aus dem L1-Cache.
    2. Edge schreibt den Eintrag auch in den L2-Cache.
  • Wenn eine Richtlinie aus dem Cache liest (LookupCache- oder ResponseCache-Richtlinie):
    1. Edge sucht zuerst nach dem Eintrag im speicherinternen L1-Cache des Nachrichtenprozessors, der die Anfrage verarbeitet.
    2. Wenn kein entsprechender In-Memory-Eintrag vorhanden ist, sucht Edge nach dem Eintrag im nichtflüchtigen L2-Cache.
    3. Wenn sich der Eintrag nicht im nichtflüchtigen Cache befindet:
      • LookupCache-Richtlinie: Aus dem Cache wird kein Wert abgerufen.
      • ResponseCache-Richtlinie: Edge gibt die tatsächliche Antwort vom Ziel an den Client zurück und speichert den Eintrag im Cache, bis er abläuft oder ungültig wird.
  • Wenn eine Richtlinie einen vorhandenen Cache-Eintrag aktualisiert oder ungültig macht (Richtlinie „InvalidCache“, „PopulateCache“ oder „ResponseCache“):
    1. Der Nachrichtenprozessor, der die Anfrage empfängt, sendet einen Broadcast, um den Eintrag im L1-Cache für sich selbst und alle anderen Nachrichtenprozessoren in allen Regionen zu aktualisieren oder zu löschen.
      • Wenn der Broadcast erfolgreich ist, aktualisiert jeder empfangende Message Processor den Eintrag im L1-Cache oder entfernt ihn daraus.
      • Wenn der Broadcast fehlschlägt, verbleibt der ungültige Cache-Wert im L1-Cache auf den Message Processors, die den Broadcast nicht erhalten haben. Diese Nachrichtenprozessoren haben veraltete Daten im L1-Cache, bis die Gültigkeitsdauer (TTL) des Eintrags abläuft oder entfernt wird, wenn die Arbeitsspeicherlimits des Nachrichtenprozessors erreicht sind.
    2. Der Broadcast aktualisiert oder löscht den Eintrag auch im L2-Cache.

Cache-Limits verwalten

Mithilfe der Konfiguration können Sie einige Aspekte des Cache verwalten. Der für den speicherinterne Cache verfügbare Speicherplatz ist durch Systemressourcen begrenzt und kann nicht konfiguriert werden. Für den Cache gelten die folgenden Einschränkungen:

  • Cache-Limits: Es gelten verschiedene Cache-Limits, z. B. Name und Wertgröße, Gesamtzahl der Caches, Anzahl der Elemente in einem Cache und Ablauf.
  • Cache im Arbeitsspeicher (L1). Die Speicherlimits für Ihren Cache können nicht konfiguriert werden. Die Limits werden von Apigee für jeden Nachrichtenprozessor festgelegt, der Caches für mehrere Kunden hostet.

    In einer gehosteten Cloud-Umgebung, in der In-Memory-Caches für alle Kundenbereitstellungen über mehrere gemeinsam genutzte Message Processors gehostet werden, besitzt jeder Message Processor einen über Apigee-konfigurierbaren Schwellenwert für den Arbeitsspeicher, damit das Caching nicht den gesamten Arbeitsspeicher der Anwendung verbraucht. Wenn der Schwellenwert für einen bestimmten Message Processor überschritten wird, werden Cache-Einträge, deren letzte Verwendung am längsten zurückliegt, aus dem Arbeitsspeicher gelöscht. Aus dem Arbeitsspeicher entfernte Einträge bleiben im L2-Cache solange gespeichert, bis sie abgelaufen oder ungültig sind.

  • Nichtflüchtiger Cache (L2): Aus dem In-Memory-Cache entfernte Einträge verbleiben gemäß den konfigurierbaren Einstellungen für die Gültigkeitsdauer im nichtflüchtigen Cache erhalten.

Konfigurierbare Optimierungen

In der folgenden Tabelle sind Einstellungen aufgeführt, mit denen Sie die Cache-Leistung optimieren können. Sie können Werte für diese Einstellungen angeben, wenn Sie einen neuen Umgebungscache erstellen, wie unter Umgebungscache erstellen und bearbeiten beschrieben.

Einstellung Beschreibung Hinweise
Ablauffrist Gibt die Gültigkeitsdauer der Cache-Einträge an. Keine.