Meng-cache internal

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

Topik ini menjelaskan cara kerja cache di bagian kebijakan seperti Mengisi kebijakan Cache, kebijakan LookupCache, kebijakan InvalidateCache, dan kebijakan Cache Respons.

Cache bersama dan lingkungan

Setiap kebijakan penyimpanan dalam cache yang Anda konfigurasi dapat menggunakan salah satu dari dua jenis cache: cache bersama yang disertakan dan dapat diakses aplikasi Anda, serta 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 hanya dapat menggunakan cache bersama menggunakan kebijakan caching, bukan API pengelolaan. Agar kebijakan caching dapat 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 selengkapnya tentang cara membuat cache, lihat Membuat dan mengedit cache lingkungan.

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

Tentang enkripsi cache

Edge for Public Cloud: Cache hanya dienkripsi di organisasi yang mendukung PCI dan HIPAA. Enkripsi untuk organisasi tersebut dikonfigurasi selama penyediaan organisasi.

Level cache dalam memori dan persisten

Cache bersama dan cache lingkungan dibangun pada sistem dua level yang terdiri dari level dalam memori dan level persisten. Kebijakan berinteraksi dengan kedua tingkat sebagai kerangka kerja gabungan. Edge mengelola hubungan antara level.

  • 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.
    • Pada setiap node, sejumlah memori tertentu dicadangkan untuk digunakan oleh cache.
    • Saat batas memori tercapai, Apigee Edge akan menghapus entri cache dari memori (meskipun masih disimpan dalam cache persisten L2) untuk memastikan bahwa memori tetap tersedia untuk proses lainnya.
    • Entri dihapus sesuai 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 memiliki penyimpanan data cache (Cassandra) yang sama untuk mempertahankan entri cache.
    • Entri cache tetap ada di sini bahkan setelah dihapus dari cache L1, misalnya saat batas dalam memori tercapai.
    • Karena cache persisten digunakan bersama oleh seluruh pemroses pesan (bahkan di region yang berbeda), entri cache akan 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 mengetahui Apigee Edge Caching In Detail di Komunitas Apigee.

Cara kebijakan menggunakan cache

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

  • Saat kebijakan menulis entri baru ke cache (kebijakan filledCache atau ResponseCache):
    1. Edge menulis entri ke cache L1 dalam memori hanya pada pemroses pesan yang menangani permintaan tersebut. Jika batas memori pada prosesor pesan tercapai sebelum entri berakhir, Edge akan menghapus entri tersebut dari cache L1.
    2. Edge juga menulis entri ke cache L2.
  • Saat kebijakan dibaca dari cache (kebijakan LookupCache atau ResponseCache):
    1. Edge mencari entri dalam cache L1 dalam memori dari pemroses pesan yang menangani permintaan terlebih dahulu.
    2. Jika tidak ada entri dalam memori yang sesuai, Edge akan mencari entri dalam cache persisten L2.
    3. Jika entri tidak berada dalam cache persisten:
      • Kebijakan LookupCache: Tidak ada nilai yang diambil dari cache.
      • Kebijakan ResponseCache: Edge menampilkan respons aktual dari target ke klien dan menyimpan entri tersebut di cache hingga masa berlakunya habis atau dibatalkan validasinya.
  • Jika kebijakan memperbarui atau membatalkan entri cache yang sudah ada (kebijakan InvalidateCache, filledCache, atau ResponseCache):
    1. Pemroses pesan yang menerima permintaan tersebut akan mengirimkan siaran untuk memperbarui atau menghapus entri dalam cache L1 pada dirinya sendiri dan semua pemroses pesan lainnya di semua region.
      • Jika siaran berhasil, setiap prosesor pesan yang menerima akan memperbarui atau menghapus entri dalam cache L1.
      • Jika siaran gagal, nilai cache yang tidak divalidasi 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 time to live (TTL) entri berakhir atau dihapus saat batas memori prosesor pesan tercapai.
    2. Siaran juga memperbarui atau menghapus entri dalam cache L2.

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: Ada berbagai batas cache, 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 akan dikeluarkan dari memori yang baru saja digunakan. Entri yang dikeluarkan dari memori akan tetap berada di cache L2 hingga masa berlakunya habis atau dibatalkan validasinya.

  • Cache persisten (L2). Entri yang dikeluarkan dari cache dalam memori akan 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.

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