Internal cache

Halaman ini berlaku untuk Apigee dan Apigee hybrid.

Lihat dokumentasi Apigee Edge.

Topik ini menjelaskan cara kerja cache di bawah kebijakan seperti kebijakan PopulateCache, kebijakan LookupCache, kebijakan InvalidateCache, dan kebijakan ResponseCache.

Tentang cache

Saat kebijakan penyimpanan dalam cache dieksekusi, cache L1 yang berumur singkat akan dibuat. Setelah satu detik, jika item yang di-cache tidak diakses, item tersebut akan dipertahankan di database yang tersedia untuk semua pemroses pesan yang di-deploy di lingkungan hingga cache berakhir masa berlakunya. Anda mengonfigurasi waktu habis masa berlaku langsung di kebijakan cache.

Tingkat cache dalam memori dan persisten

Cache bersama dan lingkungan dibuat pada sistem dua tingkat yang terdiri dari tingkat dalam memori dan tingkat persisten seperti yang ditunjukkan pada gambar berikut. Kebijakan berinteraksi dengan kedua level sebagai framework gabungan. Apigee mengelola hubungan antar-tingkat.

Kebijakan penyimpanan dalam cache berinteraksi dengan Pemroses Pesan Level 1 yang berinteraksi dengan penyimpanan persisten
            Level 2
  • Level 1 adalah cache dalam memori (L1) untuk akses cepat. Setiap node pemrosesan pesan (MP) memiliki cache dalam memorinya sendiri untuk respons tercepat terhadap permintaan.
    • L1 adalah cache dalam memori yang berumur pendek (1 detik).
    • Saat batas memori tercapai, Apigee akan menghapus entri cache dari memori (meskipun entri tersebut masih disimpan di cache persisten L2) untuk memastikan bahwa memori tetap tersedia untuk proses lain.
    • L1 dilengkapi dengan cache satu detik berumur pendek untuk melakukan pencarian yang lebih cepat untuk permintaan serentak dengan kunci cache yang sama.
  • Level 2 adalah cache persisten (L2) di bawah cache dalam memori. Semua node pemrosesan pesan berbagi penyimpanan data cache (Cassandra) untuk mempertahankan entri cache.
    • Entri cache tetap ada di sini meskipun telah dihapus dari cache L1, seperti saat batas dalam memori tercapai.
    • Karena cache persisten dibagikan di seluruh pemroses pesan (bahkan di region yang berbeda), entri cache tersedia terlepas dari node mana yang menerima permintaan untuk data yang di-cache.
    • Hanya entri dengan ukuran tertentu yang dapat di-cache, dan batas cache lainnya berlaku. Lihat Mengelola batas cache.
    • Konten cache di L2 dienkripsi dengan algoritma AES-256. Data didekripsi sebelum digunakan oleh runtime dan dienkripsi sebelum ditulis ke L2. Jadi, proses enkripsi tidak terlihat oleh pengguna.

Cara kebijakan menggunakan cache

Berikut ini penjelasan tentang cara Apigee menangani entri cache saat kebijakan penyimpanan dalam cache Anda melakukan tugasnya.

  • Saat kebijakan menulis entri baru ke cache (kebijakan PopulateCache atau ResponseCache):
    1. Apigee menulis entri ke cache L1 dalam memori hanya pada pemroses pesan yang menangani permintaan. Jika batas memori pada pemroses pesan tercapai sebelum masa berlaku entri berakhir, Apigee akan menghapus entri dari cache L1.
    2. Apigee juga menulis entri ke cache L2.
  • Saat kebijakan membaca dari cache (kebijakan LookupCache atau ResponseCache):
    1. Apigee akan mencari entri terlebih dahulu di cache L1 dalam memori dari pemroses pesan yang menangani permintaan.
    2. Jika tidak ada entri dalam memori yang sesuai, Apigee akan mencari entri di cache persisten L2.
    3. Jika entri tidak ada dalam cache persisten:
      • Kebijakan LookupCache: Tidak ada nilai yang diambil dari cache.
      • Kebijakan ResponseCache: Apigee menampilkan respons sebenarnya dari target ke klien dan menyimpan entri dalam cache hingga masa berlakunya habis atau tidak valid.
  • Saat kebijakan memperbarui atau membatalkan validasi entri cache yang ada (kebijakan InvalidateCache, kebijakan PopulateCache, atau kebijakan ResponseCache):
    1. Pemroses pesan yang menerima permintaan akan menghapus entri dari cache L1 dalam memori selama satu detik dan juga menghapus entri dari cache L2.
    2. Setelah pembaruan atau pembatalan validasi, pemroses pesan lainnya mungkin masih menyimpan cache L1 dalam memori.
    3. Karena L1 dikonfigurasi agar berakhir masa berlakunya dalam satu detik, tidak ada peristiwa penghapusan/pembaruan yang diperlukan untuk menghapus entri dari L1.

Mengelola batas cache

Melalui konfigurasi, Anda dapat mengelola beberapa aspek cache. Ruang keseluruhan yang tersedia untuk cache dalam memori dibatasi oleh resource sistem dan tidak dapat dikonfigurasi. Batasan berikut berlaku untuk cache:

  • Batas cache: Berbagai batas cache berlaku, seperti nama dan ukuran nilai, jumlah total cache, jumlah item dalam cache, dan masa berlaku.
  • Cache dalam memori (L1). Batas memori untuk cache Anda tidak dapat dikonfigurasi. Batas ditetapkan oleh Apigee untuk setiap pemroses pesan yang menghosting cache untuk beberapa pelanggan.

    Di lingkungan cloud yang dihosting, tempat cache dalam memori untuk semua deployment pelanggan dihosting di beberapa pemroses pesan bersama, setiap pemroses memiliki nilai minimum persentase memori yang dapat dikonfigurasi Apigee untuk memastikan bahwa caching tidak menggunakan semua memori aplikasi. Saat batas terlampaui untuk pemroses pesan tertentu, entri cache akan dikeluarkan dari memori berdasarkan yang paling lama tidak digunakan. Entri yang dikeluarkan dari memori tetap berada dalam cache L2 hingga masa berlakunya habis atau tidak valid.

  • Cache persisten (L2). Entri yang dihapus dari cache dalam memori tetap berada di cache persisten sesuai dengan setelan time-to-live yang dapat dikonfigurasi.

Pengoptimalan yang dapat dikonfigurasi

Tabel berikut mencantumkan setelan yang dapat Anda gunakan untuk mengoptimalkan performa cache.

Setelan Deskripsi Catatan
Akhir masa berlaku Menentukan waktu aktif untuk entri cache. Tidak ada