快取面面觀

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

本主題說明填入快取政策LookupCache 政策InvalidateCache 政策回應快取政策等政策的快取運作方式。

共用與環境快取

您可以設定的各項快取政策,可使用兩種快取類型:一種是應用程式可存取的共用快取,以及一或多個您建立的環境範圍快取。

  • 共用快取:根據預設,您的 Proxy 在每個環境中都擁有一個共用快取的存取權。共用快取適用於基本用途。

    您只能透過快取政策使用共用快取,但無法使用管理 API。如要讓快取政策使用共用快取,只要省略政策的 <CacheResource> 元素即可。

  • 環境快取:使用您選擇的值設定快取屬性時,可以建立環境範圍快取。如要進一步瞭解如何建立快取,請參閱「建立及編輯環境快取」一文。

    建立環境快取時,您需要設定其預設屬性。您可以在政策的 <CacheResource> 元素中指定快取名稱,這樣就能讓快取政策使用環境快取。

關於快取加密

公有雲的邊緣:快取只會在啟用 PCI健康保險流通與責任法案的機構中加密。這些機構的加密作業會在機構佈建期間設定。

記憶體內和永久快取等級

共用和環境快取都建構在由記憶體內層級和永久等級組成的雙層級系統上。政策會以合併架構的形式與這兩個層級互動。Edge 會管理各等級之間的關係。

  • 級別 1 是記憶體內快取 (L1),方便快速存取。每個訊息處理節點 (MP) 都有專屬的記憶體內快取 (從 Ehcache 實作),能以最快的速度回應要求。
    • 在每個節點上,系統會將一定百分比的記憶體保留給快取使用。
    • 達到記憶體上限時,Apigee Edge 會將快取項目從記憶體中移除 (不過仍會保存在 L2 永久快取中),以確保其他程序可以使用記憶體。
    • 系統會按照上次存取時間的順序移除項目,最舊的項目會先移除。
    • 這些快取也會受到快取的項目數量限制。
  • 層級 2 是記憶體快取下方的永久快取 (L2)。所有訊息處理節點都會共用快取資料儲存庫 (Cassandra),用於保留快取項目。
    • 即使快取項目已從 L1 快取中移除 (例如達到記憶體內限制),快取項目仍會保留在這裡。
    • 由於永久快取可讓訊息處理器 (即使不同地區) 共用,因此無論哪個節點收到快取資料的要求,都可以使用快取項目。
    • 只能快取特定大小的項目,並適用其他快取限制。請參閱管理快取限制

您可能也對 Apigee 社群Apigee Edge 快取詳細資料感興趣。

政策如何使用快取

以下說明 Apigee Edge 在快取政策執行工作時如何處理快取項目。

  • 當政策將新項目寫入快取時 (PopulateCache 或 ResponseCache 政策):
    1. Edge 只會在處理該項要求的訊息處理器上,將項目寫入記憶體內的 L1 快取。如果在項目到期前達到訊息處理器的記憶體限制,邊緣就會從 L1 快取中移除項目。
    2. Edge 也會將項目寫入 L2 快取。
  • 政策從快取讀取 (LookupCache 或 ResponseCache 政策) 時:
    1. Edge 會先在處理要求的訊息處理器記憶體 L1 快取中,尋找其中的項目。
    2. 如果沒有對應的記憶體內項目,Edge 會在 L2 永久快取中尋找項目。
    3. 如果該項目不在永久快取中:
      • LookupCache 政策:不會從快取擷取任何值。
      • ResponseCache 政策:Edge 會將目標的實際回應傳回用戶端,並將項目儲存在快取中,直到期限到期或失效為止。
  • 政策更新撤銷現有快取項目 (InvalidateCache、PopulateCache 或 ResponseCache 政策) 時:
    1. 接收要求的訊息處理工具會傳送廣播訊息,以更新或刪除本機 L1 快取中的項目,以及所有區域的所有其他訊息處理器。
      • 如果廣播成功,每個接收訊息處理器都會更新或移除 L1 快取中的項目。
      • 如果廣播失敗,則無效快取值仍會保留在未接收廣播訊息的訊息處理器的 L1 快取中。在 L1 快取中,這些訊息處理工具會將過時的資料儲存在 L1 快取中,直到項目的存留時間 (TTL) 屆滿,或是達到訊息處理器記憶體限制時就會移除。
    2. 廣播也會更新或刪除 L2 快取中的項目。

管理快取限制

您可以透過設定管理快取的某些層面。記憶體內快取的整體可用空間會受到系統資源限制,無法設定。快取適用以下限制:

  • 快取限制:適用多種快取限制,例如名稱和值大小、快取總數、快取中的項目數量以及到期時間。
  • 記憶體內 (L1) 快取。無法設定快取的記憶體限制。Apigee 針對為多位客戶託管快取的每個訊息處理器設定限制。

    在託管雲端環境中,所有客戶部署項目的記憶體內快取都會託管於多個共用訊息處理器,每個處理器都會提供 Apigee 可設定的記憶體百分比門檻,確保快取不會耗用應用程式的所有記憶體。因為針對特定訊息處理器超過門檻,系統會至少使用一次快取項目,從記憶體中移除快取項目。從記憶體撤銷的項目會保留在 L2 快取中,直到過期或失效。

  • 永久 (L2) 快取。從記憶體內快取中移除的項目,會根據可設定的存留時間設定,保留在永久快取中。

可設定的最佳化功能

下表列出可用來最佳化快取效能的設定。您可在建立新的環境快取時指定這些設定的值,如建立及編輯環境快取一文所述。

設定 說明 附註
效期 指定快取項目的存留時間。 無。