Apigee Edge menyediakan caching untuk persistensi data di seluruh permintaan. Saat data API diterima, data tersebut disimpan dalam cache untuk jangka waktu singkat, lalu dihapus. Durasi maksimum penyimpanan data sebelum dihapus disebut masa berlaku, atau time-to-live (TTL), cache. Setiap cache memiliki TTL default, 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 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 disimpan di cache L2 (yang memiliki TTL lebih lama daripada cache L1), sehingga tetap dapat diakses oleh pemroses pesan lain. Lihat Level cache dalam memori dan persisten untuk mengetahui detail selengkapnya tentang cache.
TTL L1 Maksimal
Di Edge for Private Cloud, Anda dapat menetapkan TTL cache L1 maksimum untuk setiap pemroses pesan menggunakan properti TTL L1 Maks (conf_cache_max.l1.ttl.in.seconds). Entri dalam cache L1 akan berakhir masa berlakunya setelah mencapai nilai TTL L1 Maks dan dihapus.
Catatan:
- Secara default, TTL L1 Maksimum dinonaktifkan (dengan nilai
-1), dalam hal ini TTL entri di cache L1 ditentukan oleh setelan masa berlaku kebijakan PopulateCache (untuk cache L1 dan L2). - TTL L1 Maksimum hanya akan berpengaruh jika nilainya lebih kecil dari masa berlaku cache secara keseluruhan.
Menetapkan TTL L1 Maksimum
Anda dapat menetapkan TTL L1 Maksimum pada pemroses pesan sebagai berikut:
- Buka
file konfigurasi
/opt/apigee/customer/application/message-processor.propertiesdi editor. Jika file tidak ada, buat file tersebut. - Tetapkan properti Max L1 TTL ke nilai yang diinginkan:
conf_cache_max.l1.ttl.in.seconds = 180
Sebaiknya gunakan nilai
180detik. - Pastikan file properti dimiliki oleh pengguna "apigee":
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- Mulai ulang pemroses pesan:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
Panduan untuk menetapkan TTL L1 Maksimum
Saat menetapkan TTL L1 Maks, perhatikan panduan berikut:
- RPC tidak ditemukan: Jika Anda melihat remote procedure call (RPC) tidak ditemukan di antara
pemroses pesan (MP)—
terutama di beberapa pusat data—
mungkin cache L1 memiliki entri yang sudah tidak berlaku, yang akan tetap tidak berlaku hingga dihapus
dari cache L1. Menetapkan TTL L1 Maks ke nilai yang lebih rendah akan memaksa entri yang tidak berlaku dihapus, dan diganti dengan nilai baru dari cache L2, lebih cepat.
Solusi: Kurangiconf_cache_max.l1.ttl.in.seconds. - Beban berlebihan pada Casandra: Saat Anda menetapkan nilai untuk TTL L1 Maks, entri cache L1 akan lebih sering habis masa berlakunya, sehingga menyebabkan lebih banyak cache tidak ditemukan di L1 dan lebih banyak cache ditemukan di L2. Karena cache L2 akan lebih sering diakses, Cassandra akan mengalami peningkatan beban.
Solusi: Tingkatkanconf_cache_max.l1.ttl.in.seconds
Sebagai aturan umum, sesuaikan TTL L1 Maks ke nilai yang menyeimbangkan frekuensi RPC yang tidak ditemukan di antara MP 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.