您正在查看 Apigee Edge 說明文件。
前往 Apigee X 說明文件。 info
本主題說明政策底下的快取運作方式,例如 Populate Cache 政策、LookupCache 政策、InvalidateCache 政策和Response Cache 政策。
共用快取和環境快取
您設定的每項快取政策都可以使用下列兩種快取類型之一:應用程式可存取的內含共用快取,以及您建立的一或多個環境範圍快取。
-
共用快取:根據預設,Proxy 可存取每個環境中的一個共用快取。共用快取適用於基本用途。
您只能使用快取政策,而非管理 API 來使用共用快取。如要讓快取政策使用共用快取,請省略政策的
<CacheResource>
元素。 -
環境快取:如果您想使用所選值設定快取屬性,可以建立環境範圍的快取。如要進一步瞭解如何建立快取,請參閱「建立及編輯環境快取」。
建立環境快取時,您會設定其預設屬性。您可以在政策的
<CacheResource>
元素中指定快取名稱,讓快取政策使用環境快取。
關於快取加密
Edge for Public Cloud:只有在 PCI 和 HIPAA 啟用機構中,快取才會加密。這些機構的加密設定會在機構佈建期間設定。
記憶體內和永久快取層級
共用快取和環境快取都是以雙層系統建構,其中包含記憶體層級和持久層級。政策會以結合的架構與這兩個層級互動。Edge 會管理層級之間的關係。
-
第 1 級是記憶體快取 (L1),可快速存取資料。每個訊息處理節點 (MP) 都有自己的記憶體內快取 (由 Ehcache 實作),可快速回應要求。
- 在每個節點上,系統都會保留一定百分比的記憶體,供快取使用。
- 當記憶體達到限制時,Apigee Edge 會從記憶體中移除快取項目 (但仍保留在 L2 持續快取中),確保記憶體可供其他程序使用。
- 系統會依據自上次存取時間的時間順序移除項目,最舊的項目會優先移除。
- 這些快取也受快取中項目數量的限制。
-
第 2 級是記憶體快取下方的永久快取 (L2)。所有訊息處理節點都會共用快取資料儲存庫 (Cassandra),以便儲存快取項目。
- 即使快取項目已從 L1 快取移除 (例如達到記憶體內限制),仍會保留在此處。
- 由於持久快取會在訊息處理器之間共用 (即使位於不同區域),因此無論哪個節點收到快取資料的要求,快取項目都會可用。
- 只有特定大小的項目可快取,且適用其他快取限制。請參閱「管理快取限制」。
您可能也會對 Apigee 社群的「Apigee Edge 快取詳細資訊」感興趣。
政策如何使用快取
以下說明 Apigee Edge 如何處理快取項目,以及快取政策如何運作。
- 當政策將新項目寫入快取 (PopulateCache 或 ResponseCache 政策):
- Edge 只會在處理要求的訊息處理器上,將項目寫入記憶體內的 L1 快取。如果訊息處理器的記憶體限制在項目到期前達到上限,Edge 就會從 L1 快取中移除該項目。
- Edge 也會將項目寫入 L2 快取。
- 政策從快取 (LookupCache 或 ResponseCache 政策) 讀取時:
- Edge 會先在處理要求的郵件處理器記憶體內 L1 快取中尋找項目。
- 如果沒有對應的記憶體中項目,Edge 會在 L2 永久快取中尋找該項目。
- 如果項目不在永久快取中:
- LookupCache 政策:系統不會從快取中擷取任何值。
- ResponseCache 政策:Edge 會將目標的實際回應傳回給用戶端,並將項目儲存在快取中,直到過期或失效為止。
- 當政策更新或使現有快取項目失效 (InvalidateCache、PopulateCache 或 ResponseCache 政策):
- 接收要求的訊息處理器會傳送廣播,以便更新或刪除 L1 快取中自身和所有地區所有其他訊息處理器的項目。
- 如果廣播成功,每個接收訊息處理器都會更新或移除 L1 快取中的項目。
- 如果廣播失敗,無效的快取值會保留在未收到廣播的訊息處理器的 L1 快取中。這些訊息處理程序會在 L1 快取中保留過時資料,直到項目的存留時間 (TTL) 到期,或在達到訊息處理程序記憶體限制時才會移除。
- 廣播也會更新或刪除 L2 快取中的項目。
- 接收要求的訊息處理器會傳送廣播,以便更新或刪除 L1 快取中自身和所有地區所有其他訊息處理器的項目。
管理快取限制
您可以透過設定管理快取的部分層面。記憶體快取的可用空間受到系統資源的限制,無法進行設定。快取適用下列限制:
- 快取限制:適用各種快取限制,例如名稱和值大小、快取總數、快取中的項目數量和到期日。
-
記憶體內 (L1) 快取。您無法設定快取的記憶體限制。Apigee 會為每個訊息處理器設定限制,這些處理器會為多位客戶代管快取。
在代管雲端環境中,所有客戶部署的記憶體快取都會跨多個共用訊息處理器代管,每個處理器都具有可由 Apigee 設定的記憶體百分比閾值,確保快取不會耗用應用程式的所有記憶體。當特定訊息處理器的閾值超過時,快取項目會根據最近最少使用的原則從記憶體中撤銷。從記憶體中淘汰的項目會保留在 L2 快取中,直到項目過期或失效為止。
- 持續性 (L2) 快取。從記憶體快取中淘汰的項目會根據可設定的存留時間設定,保留在永久快取中。
可設定的最佳化設定
下表列出可用於改善快取效能的設定。您可以在建立新的環境快取時指定這些設定的值,如「建立及編輯環境快取」一文所述。
設定 | 說明 | 附註 |
---|---|---|
有效期限 | 指定快取項目的存留時間。 | 無。 |