Internal cache

Anda sedang melihat dokumentasi Apigee Edge.
Buka dokumentasi Apigee X.
info

Topik ini menjelaskan cara kerja cache di bawah kebijakan seperti kebijakan Isi Cache, kebijakan LookupCache, kebijakan InvalidateCache, dan kebijakan Response Cache.

Cache bersama dan lingkungan

Setiap kebijakan penyimpanan dalam cache yang Anda konfigurasi dapat menggunakan salah satu dari dua jenis cache: cache bersama yang disertakan yang dapat diakses oleh aplikasi Anda dan satu atau beberapa cache cakupan lingkungan yang Anda buat.

  • Cache bersama: Secara default, proxy Anda memiliki akses ke satu cache bersama di setiap lingkungan. Cache bersama berfungsi dengan baik untuk kasus penggunaan dasar.

    Anda dapat menggunakan cache bersama hanya dengan menggunakan kebijakan cache, bukan API pengelolaan. Agar kebijakan penyimpanan dalam cache menggunakan cache bersama, cukup hapus elemen <CacheResource> kebijakan.

  • Cache lingkungan: Jika ingin mengonfigurasi properti cache dengan nilai yang Anda pilih, Anda dapat membuat cache cakupan lingkungan. Untuk mengetahui informasi selengkapnya tentang cara membuat cache, lihat Membuat dan mengedit cache lingkungan.

    Saat membuat cache lingkungan, Anda mengonfigurasi properti defaultnya. Anda dapat membuat kebijakan penyimpanan dalam cache menggunakan cache lingkungan dengan menentukan nama cache di elemen <CacheResource> kebijakan.

Tentang enkripsi cache

Edge untuk Cloud Publik: Cache dienkripsi hanya di organisasi yang mengaktifkan PCI dan HIPAA. Enkripsi untuk organisasi tersebut dikonfigurasi selama penyediaan organisasi.

Tingkat cache dalam memori dan persisten

Cache bersama dan lingkungan dibuat pada sistem dua tingkat yang terdiri dari level dalam memori dan level persisten. Kebijakan berinteraksi dengan kedua tingkat tersebut sebagai framework gabungan. Edge mengelola hubungan antartingkat.

  • Level 1 adalah cache dalam memori (L1) untuk akses cepat. Setiap node pemrosesan pesan (MP) memiliki cache dalam memorinya sendiri (diimplementasikan dari Ehcache) untuk respons tercepat terhadap permintaan.
    • Di setiap node, persentase memori tertentu dicadangkan untuk digunakan oleh cache.
    • Saat batas memori tercapai, Apigee Edge akan menghapus entri cache dari memori (meskipun entri tersebut masih disimpan di cache persisten L2) untuk memastikan memori tetap tersedia untuk proses lainnya.
    • Entri dihapus dalam urutan waktu sejak akses terakhir, dengan entri terlama dihapus terlebih dahulu.
    • Cache ini juga dibatasi oleh jumlah entri dalam cache.
  • 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 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.

Anda mungkin juga tertarik dengan Cache Apigee Edge Secara Mendetail, di Komunitas Apigee.

Cara kebijakan menggunakan cache

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

  • Saat kebijakan menulis entri baru ke cache (kebijakan PopulateCache atau ResponseCache):
    1. Edge 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, Edge akan menghapus entri dari cache L1.
    2. Edge juga menulis entri ke cache L2.
  • Saat kebijakan membaca dari cache (kebijakan LookupCache atau ResponseCache):
    1. Edge 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, Edge 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: Edge 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, PopulateCache, atau ResponseCache):
    1. Pemroses pesan yang menerima permintaan akan mengirimkan siaran untuk memperbarui atau menghapus entri di cache L1 pada dirinya sendiri dan semua pemroses pesan lainnya di semua region.
      • Jika siaran berhasil, setiap pemroses pesan penerima akan memperbarui atau menghapus entri di cache L1.
      • Jika siaran gagal, nilai cache yang tidak valid akan tetap berada di cache L1 pada pemroses pesan yang tidak menerima siaran. Pemroses pesan tersebut akan memiliki data yang sudah tidak berlaku di cache L1 hingga masa berlaku time-to-live (TTL) entri berakhir atau dihapus saat batas memori pemroses pesan tercapai.
    2. Siaran juga memperbarui atau menghapus entri di cache L2.

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 menghabiskan semua memori aplikasi. Saat batas terlampaui untuk pemroses pesan tertentu, entri cache akan dikeluarkan dari memori berdasarkan basis 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. Anda dapat menentukan nilai untuk setelan ini saat membuat cache lingkungan baru, seperti yang dijelaskan dalam Membuat dan mengedit cache lingkungan.

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