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 FillCache, kebijakan LookupCache, kebijakan InvalidateCache, dan Kebijakan ResponseCache.

Tentang cache

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

Level cache persisten dan dalam memori

Cache bersama dan lingkungan dibangun di atas sistem dua level yang terdiri dari memori dalam memori level dan level persisten seperti yang ditampilkan dalam gambar berikut. Kebijakan berinteraksi dengan kedua tingkat sebagai kerangka kerja gabungan. Apigee mengelola hubungan antarlevel.

Kebijakan penyimpanan dalam cache berinteraksi dengan Pemroses Pesan Level 1 yang berinteraksi dengan Level 2
            penyimpanan persisten
  • Level 1 adalah cache dalam memori (L1) untuk akses cepat. Setiap node pemrosesan pesan (MP) memiliki cache dalam memori sendiri untuk respons tercepat terhadap permintaan.
    • L1 adalah cache dalam memori yang berumur pendek (1 detik).
    • Saat batas memori tercapai, Apigee menghapus entri cache dari memori (meskipun disimpan dalam cache persisten L2) untuk memastikan bahwa memori tetap tersedia untuk proses lainnya.
    • L1 dilengkapi dengan {i>cache<i} satu detik berumur pendek untuk melakukan pencarian yang lebih cepat permintaan serentak dengan kunci cache yang sama.
  • Level 2 adalah cache persisten (L2) di bawah cache dalam memori. Semua pemrosesan pesan jika node berbagi penyimpanan data cache (Cassandra) untuk mempertahankan entri cache.
    • Entri cache tetap ada di sini bahkan setelah dihapus dari cache L1, seperti saat telah mencapai batas dalam memori.
    • Karena cache persisten dibagikan ke seluruh pemroses pesan (bahkan dalam berbagai entri cache akan tersedia terlepas dari node mana yang menerima permintaan untuk data yang disimpan dalam 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 mengenai cara Apigee menangani entri cache sebagaimana kebijakan penyimpanan dalam cache Anda pekerjaan mereka.

  • Saat kebijakan menulis entri baru ke cache (filledCache atau kebijakan 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 masa berlaku entri habis, Apigee akan menghapus entri dari cache L1.
    2. Apigee juga menulis entri ke cache L2.
  • Jika kebijakan membaca dari cache (kebijakan LookupCache atau ResponseCache):
    1. Apigee terlebih dahulu mencari entri dalam cache L1 dalam memori dari prosesor pesan yang akan menangani permintaan.
    2. Jika tidak ada entri dalam memori yang sesuai, Apigee akan mencari entri tersebut di L2 dalam cache persisten.
    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 dan menyimpan entri di cache sampai kedaluwarsa atau menjadi tidak valid.
  • Jika kebijakan memperbarui atau membuat validasi yang sudah ada entri cache (kebijakan InvalidateCache, kebijakan PengisiCache, atau kebijakanResponseCache):
    1. Pemroses pesan yang menerima permintaan menghapus entri dari entri satu detik cache L1 dalam memori dan juga menghapus entri dari cache L2.
    2. Setelah pembaruan atau pembatalan validasi, ada kemungkinan bahwa pemroses pesan lainnya 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 diterapkan, seperti nama dan ukuran nilai, jumlah total {i>cache<i}, jumlah item dalam {i>cache<i}, dan kedaluwarsa.
  • Cache dalam memori (L1). Batas memori untuk cache Anda tidak dapat dikonfigurasi. Batasnya adalah ditetapkan oleh Apigee untuk setiap pemroses pesan yang menghosting cache untuk beberapa pelanggan.

    Di lingkungan cloud yang dihosting, dengan cache dalam memori untuk semua deployment pelanggan yang dihosting di beberapa pemroses pesan bersama, masing-masing memiliki fitur Apigee yang dapat dikonfigurasi batas persentase memori untuk memastikan bahwa caching tidak menghabiskan semua memori. Saat ambang batas untuk pemroses pesan tertentu terlampaui, entri cache akan dihapus dari memori yang paling jarang digunakan. Entri yang dikeluarkan dari memori tetap berada di cache L2 hingga masa berlakunya habis atau menjadi tidak valid.

  • Cache persisten (L2). Entri yang dikeluarkan dari cache dalam memori tetap berada di 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 Catatan
Akhir masa berlaku Menentukan waktu aktif untuk entri cache. Tidak ada