快取面面觀

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件
info

本主題說明政策 (例如 Populate Cache 政策LookupCache 政策InvalidateCache 政策Response Cache 政策) 底下的快取運作方式。

共用和環境快取

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

  • 共用快取:根據預設,Proxy 可存取每個環境中的一個共用快取。共用快取適用於基本用途。

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

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

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

關於快取加密

公有雲專用 Edge:快取內容會在啟用 PCIHIPAA 的機構中加密。系統會在機構佈建期間設定這些機構的加密功能。

記憶體內和永久快取層級

共用和環境快取都是以雙層系統為基礎建構而成,由記憶體內層級和持續性層級組成。政策會與這兩個層級互動,形成合併架構。 Edge 會管理層級之間的關係。

  • 第 1 級是記憶體內快取 (L1),可供快速存取。每個訊息處理節點 (MP) 都有自己的記憶體內快取 (從 Ehcache 實作),可快速回應要求。
    • 每個節點都會保留一定比例的記憶體供快取使用。
    • 達到記憶體上限時,Apigee Edge 會從記憶體中移除快取項目 (但仍會保留在 L2 持續性快取中),確保記憶體仍可供其他程序使用。
    • 系統會依上次存取時間移除項目,最舊的項目會優先移除。
    • 這些快取也會受到快取項目數量的限制。
  • 第 2 層是記憶體快取下方的持續性快取 (L2)。所有訊息處理節點都會共用快取資料儲存庫 (Cassandra),用於保存快取項目。
    • 即使快取項目從 L1 快取中移除 (例如達到記憶體內限制時),仍會保留在此。
    • 由於訊息處理器會共用永久快取 (即使位於不同區域),因此無論哪個節點收到快取資料的要求,都能提供快取項目。
    • 只有特定大小的項目可以快取,且適用其他快取限制。 請參閱「管理快取限制」。

您可能也會對 Apigee 社群的「Apigee Edge Caching In Detail」感興趣。

政策如何使用快取

以下說明 Apigee Edge 如何處理快取項目,以及快取政策的運作方式。

  • 當政策將新項目寫入快取 (PopulateCache 或 ResponseCache 政策):
    1. Edge 只會在處理要求的訊息處理器上,將項目寫入記憶體內 L1 快取。如果訊息處理器的記憶體用量在項目到期前達到上限,Edge 會從 L1 快取中移除該項目。
    2. Edge 也會將項目寫入 L2 快取。
  • 當政策從快取「讀取」 (LookupCache 或 ResponseCache 政策):
    1. Edge 會先在處理要求的訊息處理器記憶體內 L1 快取中尋找項目。
    2. 如果沒有對應的記憶體內項目,Edge 會在 L2 持續性快取中尋找項目。
    3. 如果項目不在持續性快取中:
      • LookupCache 政策:未從快取擷取任何值。
      • ResponseCache 政策:Edge 會將目標的實際回應傳回給用戶端,並將項目儲存在快取中,直到項目過期或失效為止。
  • 當政策更新使現有快取項目失效時 (InvalidateCache、PopulateCache 或 ResponseCache 政策):
    1. 接收要求的訊息處理器會傳送廣播,更新或刪除自身和所有區域中所有其他訊息處理器的 L1 快取項目。
      • 如果廣播成功,每個接收訊息處理器都會更新或移除 L1 快取中的項目。
      • 如果廣播失敗,未收到廣播的訊息處理器 L1 快取中,仍會保留失效的快取值。在項目的存留時間 (TTL) 到期或達到訊息處理器記憶體限制而移除項目之前,這些訊息處理器都會在 L1 快取中保留過時資料。
    2. 廣播也會更新或刪除 L2 快取中的項目。

管理快取限制

您可以透過設定管理快取的部分環節。記憶體內快取可用的整體空間受限於系統資源,且無法設定。 快取有下列限制:

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

    在代管雲端環境中,所有客戶部署作業的記憶體內快取都會代管在多個共用訊息處理器中,每個處理器都有 Apigee 可設定的記憶體百分比門檻,確保快取不會耗用所有應用程式記憶體。如果特定訊息處理器的快取項目超過門檻,系統會根據近期最少使用原則,從記憶體中撤銷快取項目。從記憶體中逐出的項目會保留在 L2 快取中,直到過期或失效為止。

  • 持續性 (L2) 快取。從記憶體內建快取逐出的項目,會根據可設定的存留時間設定,保留在永久快取中。

可設定的最佳化

下表列出可提升快取效能的設定。建立新的環境快取時,您可以指定這些設定的值,詳情請參閱「建立及編輯環境快取」。

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