Internal cache

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Lihat dokumentasi Apigee Edge.

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

Tentang cache

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

Tingkat cache dalam memori dan persisten

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

Kebijakan caching 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 memori sendiri untuk memberikan 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 dalam cache persisten L2) untuk memastikan memori tetap tersedia untuk proses lain.
    • L1 disediakan dengan cache satu detik yang 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 setelah dihapus dari cache L1, seperti saat batas dalam memori tercapai.
    • Karena cache persisten dibagikan di seluruh pemroses pesan (bahkan di berbagai region), 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 menjelaskan cara Apigee menangani entri cache saat kebijakan caching Anda berfungsi.

  • Saat kebijakan menulis entri baru ke cache (kebijakan PopulateCache atau ResponseCache):
    1. Apigee menulis entri ke cache L1 dalam memori hanya di pemroses pesan yang menangani permintaan. Jika batas memori pada pemroses pesan tercapai sebelum 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 pertama-tama mencari entri 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 di 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 berakhir atau dibatalkan.
  • Saat kebijakan memperbarui atau membatalkan entri cache yang ada (kebijakan InvalidateCache, kebijakan PopulateCache, atau kebijakan ResponseCache):
    1. Prosesor pesan yang menerima permintaan akan menghapus entri dari cache L1 dalam memori satu detik dan juga menghapus entri dari cache L2.
    2. Setelah pembaruan atau pembatalan, kemungkinan pemroses pesan lainnya masih menyimpan cache L1 dalam memori.
    3. Karena L1 dikonfigurasi agar berakhir 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 ukuran nama dan nilai, total jumlah 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 batas persentase memori yang dapat dikonfigurasi Apigee untuk memastikan bahwa caching tidak menggunakan semua memori aplikasi. Saat nilai minimum terlampaui untuk pemroses pesan tertentu, entri cache akan dikeluarkan dari memori berdasarkan penggunaan yang paling jarang. Entri yang dikeluarkan dari memori tetap berada di cache L2 hingga masa berlakunya berakhir atau dibatalkan.

  • Cache persisten (L2). Entri yang dikeluarkan 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