在訊息處理器中設定 L1 快取到期時間

Apigee Edge 提供快取以跨要求保存資料。收到 API 資料時,資料會在快取中儲存一小段時間,然後就會刪除。資料刪除前保留的時間長度上限稱為快取的「到期時間」 (存留時間)。每個快取都有預設存留時間,但在某些情況下,您可能需要變更存留時間值以改善 API 效能。

快取類型

API 資料儲存在兩種快取類型:

  • 級別 1 (L1):記憶體內快取,存取速度更快,但可用的儲存空間容量較低。
  • 級別 2 (L2):Cassandra 資料儲存庫中的永久快取,存取速度較慢,但可用的儲存空間容量較高。

如果 L1 快取中的資料項目達到 L1 存留時間,系統就會刪除該資料。不過,項目的副本會保留在 L2 快取 (存留時間比 L1 快取更長) 中,其他訊息處理器仍可存取該副本。如要進一步瞭解快取,請參閱記憶體內與永久快取級別

L1 存留時間上限

在 Private Cloud 的 Edge 中,您可以使用最大 L1 TTL 屬性 (conf_cache_max.l1.ttl.in.seconds) 設定每個訊息處理器的 L1 快取存留時間上限。L1 快取中的項目會在達到 L1 存留時間上限值之後失效,並且即會遭到刪除。

附註:

  • 根據預設,L1 存留時間會停用 (值為 -1)。在這種情況下,L1 快取中項目的存留時間取決於 PopulateCache 政策的 到期時間設定 (L1 和 L2 快取)。
  • L1 存留時間上限只有在值小於整體快取過期時,才會生效。

設定 L1 存留時間上限

您可以按照下列方式為訊息處理器設定 L1 存留時間上限:

  1. 在編輯器中開啟 設定檔 /opt/apigee/customer/application/message-processor.properties。如果檔案不存在,請建立檔案。
  2. 將 L1 存留時間上限屬性設為所需的值:
    conf_cache_max.l1.ttl.in.seconds = 180

    建議值為 180 秒。

  3. 確認屬性檔案為「apigee」使用者擁有:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
  4. 重新啟動訊息處理工具:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart

L1 存留時間上限設定指南

設定 L1 存留時間上限時,請注意下列原則:

  • 遠端程序呼叫 (RPC) 失敗:如果您發現訊息處理器 (MP) 之間未偵測到遠端程序呼叫 (RPC),特別是橫跨多個資料中心,L1 快取可能會有過時的項目,直到這些項目從 L1 快取中刪除為止。將最大 L1 TTL 設為較低的值會強制移除所有過時項目,並以 L2 快取中的新值取代。
    解決方法:降低 conf_cache_max.l1.ttl.in.seconds
  • Casandra 負載過多:當您設定 L1 存留時間上限時,L1 快取項目將更常過期,導致發生更多 L1 快取失敗和更多 L2 快取命中。由於 L2 快取命中頻率較高,因此 Cassandra 會增加負載。
    解決方法:提高conf_cache_max.l1.ttl.in.seconds

一般而言,請將 L1 存留時間調整成某個值,以平衡 MP 之間的 RPC 失敗頻率與 Cassandra 上潛在的負載。

建議您將 conf_cache_max.l1.ttl.in.seconds 的值設為至少 180 秒 (3 分鐘),確保處理順暢。