Ablauf des L1-Cache auf einem Nachrichtenprozessor festlegen

Apigee Edge bietet Caching für die Persistenz von Daten über Anfragen hinweg. Eingehende API-Daten werden 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 Caches bezeichnet. Jeder Cache hat eine Standard-TTL. In einigen Fällen müssen Sie jedoch den TTL-Wert ändern, um die API-Leistung zu verbessern.

Cache-Typen

API-Daten werden in zwei Cache-Typen gespeichert:

  • Ebene 1 (L1): In-Memory-Cache für schnelleren Zugriff, aber weniger verfügbare Speicherkapazität.
  • Ebene 2 (L2): Nichtflüchtiger Cache in einem Cassandra-Datenspeicher mit langsamerem Zugriff, aber mehr verfügbarer Speicherkapazität.

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

Max. L1-TTL

In Edge for Private Cloud können Sie die maximale L1-Cache-TTL für jeden Nachrichtenprozessor mit dem Attribut „Max. L1 TTL“ (conf_cache_max.l1.ttl.in.seconds) festlegen. Ein Eintrag im L1-Cache läuft nach Erreichen des maximalen L1-TTL-Werts ab 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 (für L1 und L2-Cache) bestimmt.
  • Die maximale L1-TTL ist nur wirksam, wenn ihr Wert kleiner als der gesamte Cache-Ablauf ist.

Maximale L1-TTL festlegen

Sie können die maximale L1-TTL für einen Message Processor wie folgt 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 „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 für die Einstellung der maximalen L1-TTL

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

  • RPC-Fehler:Wenn Sie Fehler bei Remoteprozeduraufrufen zwischen Message Processorn (MPs) feststellen – insbesondere in mehreren Rechenzentren –, 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 setzen, werden alle veralteten Einträge schneller entfernt und durch neue Werte aus dem L2-Cache ersetzt.
    Lösung:Verringern Sie den Wert von conf_cache_max.l1.ttl.in.seconds.
  • Übermäßige Auslastung von 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 aufgerufen wird, erhöht Cassandra die Last.
    Lösung: Erhöhen Sie den conf_cache_max.l1.ttl.in.seconds

Als allgemeine Regel sollten Sie die maximale L1-TTL auf einen Wert einstellen, 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 verläuft.