Ablauf des L1-Cache auf einem Nachrichtenprozessor festlegen

Apigee Edge bietet Caching für die Persistenz von Daten über Anfragen hinweg. Wenn API-Daten empfangen werden, werden sie für kurze Zeit im Cache gespeichert und dann gelöscht. Die maximale Zeit, die ein Datenelement aufbewahrt wird, bevor es gelöscht wird, wird als Ablauf oder Gültigkeitsdauer (TTL) des Cache bezeichnet. Jeder Cache hat eine Standard-TTL. In einigen Fällen müssen Sie den TTL-Wert jedoch möglicherweise ändern, um die API-Leistung zu verbessern.

Cache-Typen

API-Daten werden in zwei Arten von Cache gespeichert:

  • Ebene 1 (L1): In-Memory-Cache mit schnellerem Zugriff, aber weniger verfügbarer Speicherkapazität.
  • Level 2 (L2): Nichtflüchtiger Cache in einem Cassandra-Datenspeicher, der einen langsameren Zugriff, aber mehr verfügbare Speicherkapazität hat.

Wenn ein Dateneintrag im L1-Cache die L1-TTL erreicht, wird er gelöscht. Eine Kopie des Eintrags wird jedoch im L2-Cache gespeichert, der eine längere TTL als der L1-Cache hat. Dort bleibt er für andere Message Processors zugänglich. Weitere Informationen zum Cache finden Sie unter In-Memory- und nichtflüchtige Cache-Ebenen.

Maximale L1-TTL

In Edge for Private Cloud können Sie die maximale L1-Cache-TTL für jeden Message Processor mit dem Attribut „Max L1 TTL“ (conf_cache_max.l1.ttl.in.seconds) festlegen. Ein Eintrag im L1-Cache läuft ab, wenn der Wert „Max L1 TTL“ erreicht ist, und wird gelöscht.

Hinweise:

  • Standardmäßig ist die maximale L1-TTL deaktiviert (mit dem Wert -1). In diesem Fall wird die TTL eines Eintrags im L1-Cache durch die Ablaufeinstellungen der PopulateCache-Richtlinie bestimmt (sowohl für den L1- als auch für den L2-Cache).
  • Die maximale L1-TTL wirkt sich nur aus, wenn ihr Wert kleiner als der Gesamtablauf des Cache ist.

Maximale L1-TTL festlegen

Sie können die maximale L1-TTL für einen Message Processor so festlegen:

  1. Öffnen Sie die Konfigurationsdatei /opt/apigee/customer/application/message-processor.properties in einem Editor. Wenn die Datei nicht vorhanden ist, erstellen Sie sie.
  2. Legen Sie für die Eigenschaft „Max L1 TTL“ den gewünschten Wert fest:
    conf_cache_max.l1.ttl.in.seconds = 180

    Wir empfehlen den Wert 180 Sekunden.

  3. Achten Sie darauf, dass die Attributdatei dem Nutzer „apigee“ gehört:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Starten Sie den Message Processor neu:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Richtlinien zum Festlegen der maximalen L1-TTL

Beachten Sie beim Festlegen der maximalen L1-TTL die folgenden Richtlinien:

  • RPC-Fehler: Wenn Sie Remote-Prozeduraufruf-Fehler (RPC) zwischen Message Processors (MPs) feststellen, insbesondere über mehrere Rechenzentren hinweg, ist es möglich, dass der L1-Cache veraltete Einträge enthält, die veraltet bleiben, bis sie aus dem L1-Cache gelöscht werden. Wenn Sie die maximale L1-TTL auf einen niedrigeren Wert festlegen, werden veraltete Einträge früher entfernt und durch neue Werte aus dem L2-Cache ersetzt.
    Lösung: Verringern Sie conf_cache_max.l1.ttl.in.seconds.
  • Übermäßige Last auf Casandra: Wenn Sie einen Wert für die maximale L1-TTL festlegen, laufen L1-Cache-Einträge häufiger ab, was zu mehr L1-Cache-Fehlern und mehr L2-Cache-Treffern führt. Da der L2-Cache häufiger getroffen wird, wird Cassandra stärker belastet.
    Lösung: conf_cache_max.l1.ttl.in.seconds erhöhen

Als allgemeine Regel gilt: Stellen Sie die maximale L1-TTL auf einen Wert ein, der die Häufigkeit von RPC-Fehlern zwischen MPs mit der potenziellen Last auf Cassandra ausgleicht.

Wir empfehlen, den Wert von conf_cache_max.l1.ttl.in.seconds auf mindestens 180 Sekunden (3 Minuten) festzulegen, damit die Verarbeitung reibungslos funktioniert.