Menetapkan masa berlaku cache L1 di Pemroses Pesan

Apigee Edge menyediakan caching untuk persistensi data di seluruh permintaan. Saat data API diterima, data akan disimpan dalam cache selama jangka waktu singkat lalu dihapus. Durasi maksimum penyimpanan data sebelum dihapus disebut expiry, atau time-to-live (TTL), cache. Setiap {i>cache<i} memiliki TTL {i>default<i}, tetapi dalam beberapa kasus Anda mungkin perlu mengubah nilai TTL untuk meningkatkan performa API.

Jenis cache

Data API disimpan dalam dua jenis cache:

  • Level 1 (L1): Cache dalam memori, yang memiliki akses lebih cepat, tetapi ketersediaan penyimpanan lebih kecil kapasitas.
  • Level 2 (L2): Cache persisten di penyimpanan data Cassandra, yang lebih lambat akses tetapi lebih banyak kapasitas penyimpanan yang tersedia.

Ketika entri data dalam cache L1 mencapai TTL L1, entri data tersebut akan dihapus. Namun, salinan entri disimpan di cache L2 (yang memiliki TTL lebih lama dari cache L1), yang masih dapat diakses oleh pemroses pesan lainnya. Lihat Dalam memori dan tingkat cache persisten untuk detail selengkapnya tentang cache.

TTL L1 Maks.

Di Edge untuk Private Cloud, Anda dapat menetapkan TTL cache L1 maksimum untuk setiap pesan menggunakan properti TTL L1 Maks (conf_cache_max.l1.ttl.in.seconds). Entri dalam cache L1 akan habis masa berlakunya setelah mencapai nilai TTL Maks L1 dan dihapus.

Catatan:

  • Secara default, TTL L1 Maks dinonaktifkan (dengan nilai -1), di mana TTL dari entri dalam {i>cache<i} L1 ditentukan dengan kebijakan PengisianCache. setelan masa berlaku (untuk cache L1 dan L2).
  • TTL L1 Maks hanya akan berpengaruh jika nilainya lebih kecil dari masa berlaku cache secara keseluruhan.

Menetapkan TTL L1 Maks

Anda dapat menetapkan TTL L1 Maks pada pemroses pesan sebagai berikut:

  1. Buka file konfigurasi /opt/apigee/customer/application/message-processor.properties di editor. Jika file tidak ada, buat file tersebut.
  2. Tetapkan properti TTL L1 Maks ke nilai yang diinginkan:
    conf_cache_max.l1.ttl.in.seconds = 180

    Sebaiknya nilai 180 detik.

  3. Pastikan file properti dimiliki oleh "apigee" pengguna:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. Mulai ulang pemroses pesan:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

Panduan untuk menetapkan TTL L1 Maks

Saat menetapkan TTL L1 Maks, perhatikan pedoman berikut:

  • RPC tidak lulus: Jika Anda melihat remoteproc call (RPC) tidak ditemukan antara {i>message processor <i}(MP)— terutama di beberapa pusat data— mungkin saja cache L1 memiliki entri yang usang, yang akan tetap tidak berlaku hingga dihapus dari cache L1. Menyetel TTL L1 Maks ke nilai yang lebih rendah akan memaksa setiap entri yang usang akan dihapus, dan diganti dengan nilai baru dari cache L2, lebih cepat.
    Solusi: Kurangi conf_cache_max.l1.ttl.in.seconds.
  • Beban berlebihan di Casandra: Saat Anda menetapkan nilai untuk Max L1 TTL, entri cache L1 akan lebih sering kedaluwarsa, yang menyebabkan lebih banyak cache L1 yang tidak ditemukan dan lebih banyak ditemukannya cache L2. Karena {i>cache<i} L2 akan lebih sering terkena serangan, Cassandra akan mengalami peningkatan beban.
    Solusi: Tingkatkan conf_cache_max.l1.ttl.in.seconds

Sebagai aturan umum, setel TTL L1 Maks ke nilai yang menyeimbangkan frekuensi RPC meleset di antara anggota parlemen dengan potensi beban pada Cassandra.

Sebaiknya tetapkan nilai conf_cache_max.l1.ttl.in.seconds ke minimal 180 detik (3 menit) agar pemrosesan tetap berjalan lancar.