Apigee Edge 提供快取功能以保留資料 在所有要求中查詢收到 API 資料後,該資料會暫時儲存在快取中 然後刪除資料保留時間上限 稱為快取的「到期時間」,或稱為「存留時間」。 每個快取都有預設的存留時間,但在某些情況下,您可能需要變更存留時間值 以便提升 API 效能
快取類型
API 資料會儲存在兩種快取中:
- 第 1 級 (L1):記憶體內快取,存取速度較快,但可用的儲存空間較少 容量。
- 第 2 級 (L2):Cassandra 資料儲存庫中的永久快取,執行速度較慢 提供更豐富的儲存空間容量
如果 L1 快取中的資料項目達到 L1 存留時間,就會刪除。不過, 項目副本會保留在 L2 快取中 (存留時間比 L1 快取長), ,其他訊息處理器仍可存取該檔案。 請參閱「記憶體內建和 永久快取等級。
L1 存留時間上限
在 Edge for Private Cloud 中,您可以為每則訊息設定 L1 快取存留時間上限
處理器使用最大 L1 TTL 屬性 (conf_cache_max.l1.ttl.in.seconds
)。
L1 快取中的項目將達到 L1 存留時間上限值並遭到刪除。
注意:
- 「L1 TTL」上限預設為停用 (值為
-1
), 如果是這種情況,系統會判定 L1 快取中項目的存留時間 遭到 PopulateCache 政策的 到期設定 (L1 和 L2 快取)。 - 只有當 L1 TTL 值小於整體快取到期時間時,這項設定才會產生影響。
設定 L1 存留時間上限
您可以為訊息處理器設定 L1 存留時間上限,如下所示:
- 開啟
設定檔
/opt/apigee/customer/application/message-processor.properties
「在編輯器中設定」如果檔案不存在,請建立該檔案。 - 將 L1 存留時間上限屬性設為所需值:
conf_cache_max.l1.ttl.in.seconds = 180
建議值是
180
秒。 - 請確定屬性檔案的擁有者為「apigee」使用者:
chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
- 重新啟動訊息處理器:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
L1 存留時間上限設定指南
設定 L1 存留時間上限時,請謹記下列規範:
- 遠端程序呼叫 (RPC) 失敗:如果發現
訊息處理器 (MP):
尤其是在多個資料中心之間
L1 快取可能有過時的項目,這些項目在刪除之前都會保持過時
來自 L1 快取的 IP 位址將最高 L1 存留時間設為較低的值,會強制所有
過時的項目,並更快換成 L2 快取中的最新值。
解決方法:調低conf_cache_max.l1.ttl.in.seconds
。 - Casandra 的負載過多:如果設定 L1 TTL 上限的值,L1 快取項目
更常過期
會導致更多 L1 在快取中找不到所需資料,以及更多 L2 快取命中。因為 L2 快取會較常命中
Cassandra 會產生負載增加。
解決方法:增加conf_cache_max.l1.ttl.in.seconds
一般而言,將「最高 L1 存留時間」調整為平衡頻率 代表 Cassandra 之間的遠端程序呼叫 (RPC) 失敗,且 Cassandra 上有潛在負載。
建議您將 conf_cache_max.l1.ttl.in.seconds
的值設為至少
180
秒 (3 分鐘) 以確保處理程序順暢。