Menetapkan masa berlaku cache L1 di Pemroses Pesan

Apigee Edge menyediakan caching untuk persistensi data di seluruh permintaan. Saat diterima, data API akan disimpan di cache selama jangka waktu singkat, lalu dihapus. Durasi maksimum suatu data disimpan sebelum dihapus disebut expiry, atau time-to-live (TTL), dari cache. Setiap cache memiliki TTL default. Namun, 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 kapasitas penyimpanan yang tersedia lebih sedikit.
  • Level 2 (L2): Cache persisten di penyimpanan data Cassandra, yang memiliki akses lebih lambat tetapi kapasitas penyimpanan yang tersedia lebih besar.

Saat entri data di cache L1 mencapai TTL L1, entri data tersebut akan dihapus. Namun, salinan entri tersebut disimpan di cache L2 (yang memiliki TTL lebih lama daripada cache L1), yang tetap dapat diakses oleh pemroses pesan lainnya. Lihat Level cache dalam memori dan persisten untuk mengetahui detail selengkapnya tentang cache.

TTL L1 Maks

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

Notes:

  • Secara default, Max L1 TTL dinonaktifkan (dengan nilai -1), dalam hal ini TTL entri dalam cache L1 ditentukan oleh setelan masa berlaku kebijakan FILLINCache (untuk cache L1 dan L2).
  • TTL L1 maks hanya berpengaruh jika nilainya lebih kecil dari masa berlaku cache secara keseluruhan.

Menyetel TTL L1 Maks

Anda dapat menetapkan Max L1 TTL 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 gunakan nilai 180 detik.

  3. Pastikan file properti dimiliki oleh pengguna "apigee":
    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 menyetel TTL L1 Maks

Saat menetapkan TTL Max L1, perhatikan panduan berikut:

  • RPC gagal: Jika Anda mendapati adanya remoteproc call (RPC) yang terlewat di antara pemroses pesan (MP)— terutama di beberapa pusat data— mungkin cache L1 memiliki entri yang sudah tidak berlaku, yang akan tetap usang hingga dihapus dari cache L1. Menyetel TTL Max L1 ke nilai yang lebih rendah akan memaksa entri yang sudah tidak berlaku 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: Jika Anda menetapkan nilai untuk TTL L1 Maks, entri cache L1 akan lebih sering habis masa berlakunya, sehingga menyebabkan lebih banyak cache L1 yang tidak ditemukan dan lebih banyak cache L2 ditemukan. Karena cache L2 akan lebih sering ditemukan, Cassandra akan mengalami peningkatan beban.
    Solusi: Tingkatkan conf_cache_max.l1.ttl.in.seconds

Sebagai aturan umum, sesuaikan TTL L1 Maks ke nilai yang menyeimbangkan frekuensi RPC yang terlewat antara MP dengan beban potensial di Cassandra.

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