Internal cache

Halaman ini berlaku untuk Apigee dan Apigee Hybrid.

Baca dokumentasi Apigee Edge.

Topik ini menjelaskan cara kerja cache di bawah kebijakan seperti kebijakan FillCache, kebijakan LookupCache, kebijakan InvalidateCache, dan kebijakanResponseCache.

Tentang cache

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

Level cache dalam memori dan persisten

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

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 berdurasi singkat (1 detik).
    • Saat batas memori tercapai, Apigee menghapus entri cache dari memori (meskipun entri cache masih disimpan dalam cache persisten L2) untuk memastikan bahwa memori tetap tersedia untuk proses lainnya.
    • L1 dilengkapi dengan cache satu detik yang berumur singkat guna 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 memiliki penyimpanan data cache (Cassandra) yang sama untuk mempertahankan entri cache.
    • Entri cache tetap ada di sini bahkan setelah dihapus dari cache L1, seperti saat batas dalam memori tercapai.
    • Karena cache persisten dibagikan ke 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. Oleh karena itu, proses enkripsi tidak terlihat oleh pengguna.

Cara kebijakan menggunakan cache

Berikut ini penjelasan cara Apigee menangani entri cache saat kebijakan caching Anda melakukan tugasnya.

  • Saat kebijakan menulis entri baru ke cache (kebijakan ConfigureCache atau ResponseCache):
    1. Apigee menulis entri ke cache L1 dalam memori hanya pada pemroses pesan yang menangani permintaan tersebut. 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 dibaca dari cache (kebijakan LookupCache atau ResponseCache):
    1. Apigee terlebih dahulu mencari entri dalam cache L1 dalam memori dari pemroses pesan yang menangani permintaan.
    2. Jika tidak ada entri dalam memori yang sesuai, Apigee akan mencari entri dalam cache persisten L2.
    3. Jika entri tidak ada dalam cache persisten:
      • Kebijakan LookupCache: Tidak ada nilai yang diambil dari cache.
      • KebijakanResponseCache: Apigee menampilkan respons sebenarnya dari target ke klien dan menyimpan entri dalam cache hingga masa berlakunya habis atau menjadi tidak valid.
  • Saat kebijakan memperbarui atau membatalkan validasi entri cache yang sudah ada (kebijakan InvalidateCache, kebijakan FillCache, atau kebijakan ResponseCache):
    1. Pemroses pesan yang menerima permintaan tersebut menghapus entri dari cache L1 dalam memori selama satu detik dan juga menghapus entri dari cache L2.
    2. Setelah update atau pembatalan validasi, pemroses pesan lain mungkin akan masih menyimpan cache L1 dalam memori.
    3. Karena L1 dikonfigurasi agar berakhir dalam satu detik, tidak ada peristiwa hapus/pembaruan yang diperlukan untuk menghapus entri dari L1.

Mengelola batas cache

Melalui konfigurasi, Anda dapat mengelola beberapa aspek cache. Keseluruhan ruang 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.

    Dalam lingkungan cloud yang dihosting, dengan cache dalam memori untuk semua deployment pelanggan yang dihosting di beberapa pemroses pesan bersama, setiap prosesor memiliki batas persentase memori yang dapat dikonfigurasi dengan Apigee untuk memastikan bahwa caching tidak menghabiskan semua memori aplikasi. Ketika nilai minimum terlampaui untuk pemroses pesan tertentu, entri cache dikeluarkan dari memori atas dasar yang paling lama tidak digunakan. Entri yang dikeluarkan dari memori akan tetap berada di cache L2 sampai masa berlakunya habis atau menjadi tidak valid.

  • Cache persisten (L2). Entri yang dikeluarkan dari cache dalam memori akan tetap berada dalam cache persisten sesuai dengan setelan waktu aktif yang dapat dikonfigurasi.

Pengoptimalan yang dapat dikonfigurasi

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

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