Anti-Pattern: Speichert Daten größer als 256 KB im Cache

Sie lesen gerade die Dokumentation zu Apigee und Apigee Hybrid.
Apigee Edge-Dokumentation aufrufen.

Apigee bietet die Möglichkeit, Daten zur Persistenz und schnelleren Abruf in einem Cache zu speichern.

  • Die Daten werden anfänglich im speicherinternen Cache des Nachrichtenprozessors gespeichert, der als L1-Cache bezeichnet wird.
  • Der L1-Cache ist durch den Speicherplatz begrenzt, der als Prozentsatz des JVM-Speichers reserviert ist.
  • Die im Cache gespeicherten Einträge werden später im L2-Cache gespeichert, auf den alle Nachrichtenprozessoren zugreifen können. Weitere Details finden Sie im folgenden Abschnitt.
  • Der L2-Cache hat keine feste Beschränkung für die Anzahl der Cache-Einträge. Die maximale Größe des Eintrags, der im Cache gespeichert werden kann, ist jedoch auf 256 KB begrenzt. Die Cache-Größe von 256 KB ist die empfohlene Größe für eine optimale Leistung.

Anti-Pattern

Dieses spezielle Anti-Muster beschreibt die Auswirkungen der Überschreitung der aktuellen Cachegrößenbeschränkungen in Apigee.

Wenn Daten > 256 KB im Cache gespeichert sind, hat dies folgende Konsequenzen:

  • API-Anfragen, die zum ersten Mal auf jedem Nachrichtenprozessor ausgeführt werden, müssen die Daten unabhängig von der ursprünglichen Quelle (Richtlinie oder Zielserver) beziehen, da Einträge > 256 KB nicht in L2 verfügbar sind.
  • Das Speichern größerer Daten (mehr als 256 KB) im L1-Cache belastet die Plattformressourcen in der Regel stärker. Dies führt dazu, dass der L1-Cache-Speicher schneller gefüllt wird und somit weniger Speicherplatz für andere Daten zur Verfügung steht. Aus diesem Grund können die Daten im Cache nicht so aggressiv gespeichert werden, wie sie möchten.
  • Im Cache gespeicherte Einträge aus den Nachrichtenprozessoren werden entfernt, wenn das Limit für die Anzahl der Einträge erreicht ist. Dadurch werden die Daten wieder von der ursprünglichen Quelle auf den entsprechenden Nachrichtenverarbeitern abgerufen.

Zwei Ablaufdiagramme.
  Eines für die Größe<=512 KB, das den Datenfluss zwischen dem API-Proxy und dem Message Processor und den Datenfluss zwischen Message Processors und Persistent Storage L2-Cache zeigt. Eines für die Größe>512 KB, das den Datenfluss zwischen dem API-Proxy und Message Processor und den Datenfluss zwischen Message Processors und Data/Response anzeigt, die nicht im L2-Cache gespeichert sind.

Auswirkungen

  • Daten mit einer Größe von mehr als 256 KB werden nicht im nicht-flüchtigen L2-Cache gespeichert.
  • Häufigere Aufrufe an die ursprüngliche Quelle (entweder eine Richtlinie oder ein Zielserver) führen zu erhöhten Latenzen für die API-Anfragen.

Best Practice

  • Es wird empfohlen, Daten der Größe < 256 KB im Cache zu speichern, um eine optimale Leistung zu erzielen.
  • Wenn Sie Daten > 256 KB speichern müssen, sollten Sie Folgendes berücksichtigen:
    • Beliebige Datenbank verwenden, um große Daten zu speichern

      ODER

    • Daten komprimieren

Weitere Informationen