Interne Strukturen des Cache

Sie sehen sich die Dokumentation zu Apigee Edge an.
Sehen Sie sich die Apigee X-Dokumentation an.
info

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

Freigegebene und Umgebungscaches

Für jede von Ihnen konfigurierte Caching-Richtlinie kann einer von zwei Cache-Typen verwendet werden: ein enthaltener freigegebener Cache, auf den Ihre Anwendungen zugreifen können, und ein oder mehrere von Ihnen erstellte Caches auf Umgebungsebene.

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

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

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

    Wenn Sie einen Umgebungscache erstellen, konfigurieren Sie die Standardeigenschaften. Sie können festlegen, dass eine Caching-Richtlinie den Umgebungscache verwendet, indem Sie den Cachenamen im Element <CacheResource> der Richtlinie angeben.

Informationen zur Cache-Verschlüsselung

Edge für Public Cloud:Der Cache wird nur in Organisationen verschlüsselt, für die PCI und HIPAA aktiviert sind. 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 den Cache reserviert.
    • Wenn das Speicherlimit erreicht ist, entfernt Apigee Edge die Cache-Einträge aus dem Arbeitsspeicher. Sie sind jedoch weiterhin im nichtflüchtigen L2-Cache enthalten, damit der Arbeitsspeicher für andere Prozesse verfügbar bleibt.
    • Die Einträge werden in der Reihenfolge des letzten Zugriffs entfernt, wobei die ältesten Einträge zuerst entfernt werden.
    • Diese Caches sind auch durch die Anzahl der Einträge im Cache 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.

Möglicherweise ist auch der Artikel Apigee Edge Caching In Detail (Apigee Edge-Caching im Detail) in der Apigee Community interessant für Sie.

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 In-Memory-L1-Cache des Message Processors, 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 gelesen wird (LookupCache- oder ResponseCache-Richtlinie):
    1. Edge sucht zuerst nach dem In-Memory-L1-Cache des Message Processors, 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: Es wird kein Wert aus dem Cache 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 entwertet (InvalidateCache-, PopulateCache- oder ResponseCache-Richtlinie):
    1. Der Message Processor, der eine Anfrage empfängt, sendet ein Broadcast zum Aktualisieren oder Löschen des Eintrags im L1-Cache selbst und aller anderen Message Processors in allen Regionen.
      • 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 Message Processors weisen veraltete Daten im L1-Cache auf, bis die Gültigkeitsdauer des Eintrags abgelaufen ist oder entfernt wird, wenn die Speicherkapazität des Message Processors erreicht ist.
    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.