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

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

Apigee Edge bietet die Möglichkeit, Daten zur Laufzeit in einem Cache zu speichern, um Persistenz und einen schnelleren Abruf zu ermöglichen.

  • Die Daten werden anfänglich im speicherinternen Cache des Message Processor 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

In diesem speziellen Anti-Pattern werden die Auswirkungen der Überschreitung der aktuellen Cache-Größenbeschränkungen innerhalb der Apigee Edge-Plattform behandelt.

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.
  Eine für Größe<=256 KB, die Datenflüsse zwischen API-Proxy- und Nachrichtenprozessoren sowie Datenflüsse zwischen Nachrichtenprozessoren und dem L2-Cache des nichtflüchtigen Speichers zeigt. Einer für eine Größe von 256 KB, der Datenflüsse zwischen API-Proxy- und Nachrichtenprozessoren sowie Datenflüsse zwischen Nachrichtenprozessoren und Daten/Antwort 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 speichern müssen, die größer als 256 KB sind, sollten Sie Folgendes in Betracht ziehen:
    • Verwendung einer geeigneten Datenbank zum Speichern großer Daten

      ODER

    • Daten komprimieren

Weitere Informationen