QPID 作業指南

Edge for Private Cloud 4.53.00 版本隨附 Qpid Broker-J 8.0.6。本頁面說明 和磁碟的考量因素 Edge for Private Cloud 的 apigee-qpidd 元件 (使用 Java 型代理程式)。 下列各節僅適用於 Apigee 的 Qpid 用途,以及如何使用 Apigee 的設定機制調整 Qpid。

Apigee 中的 Qpid

在 Apigee 中,Qpid 用於兩個主要工作流程:

  • 數據分析
  • 營利

在這兩種工作流程中,訊息處理者都會產生訊息 並推送至 Qpid在 Analytics 中,訊息會由 Qpid 伺服器讀取;在營利功能中,則由 Rating 伺服器 (管理伺服器的一部分) 讀取。讀取後,批次訊息就不會進行批次擷取和擷取。

以下各節將說明 Qpid。這些設定是以 Analytics 或營利功能的單一訊息大小 2 KB 為依據。內建 預設的批次大小為 50,Qpid 中的每則訊息約為 100 KB。Apigee 可讓 Proxy 修改訊息並在訊息中加入其他資訊 (數據分析或營利)?在極少數的情況下,這可能會大幅改變 單一訊息和所有 Qpid 中的整批訊息。雖然一般 即使如此,以下各節有關記憶體和磁碟的建議仍然有效。 您可能需要對 Qpid 進行其他調整,以確保作業順利進行。

記憶體

Qpid Broker 使用兩種記憶體:堆外記憶體和堆積記憶體。Qpid 會將訊息儲存在堆外記憶體中,並使用堆積記憶體處理自身的內部工作、將訊息傳送至佇列和交換機等。在大多數情況下,Apigee 建議您將 Qpid Broker 的堆外記憶體和堆積記憶體保持 3:1 的比例。

而未堆積記憶體中的訊息會保留在磁碟中。此外,如果堆外記憶體的總使用率超出特定門檻,Qpid 就會設為將訊息溢位至磁碟。

根據預設,Apigee 會根據節點的可用記憶體,計算 Qpid Broker 的堆積和非堆積記憶體。對於 Qpid 代理程式的堆積,Apigee 指令碼的堆積有 4 GB 的軟性限制。 而不會有堆積記憶體如果您想覆寫這些限制,可以使用下方的兩種設定,為 Qpid 的堆積和非堆積記憶體設定專屬值。

  • 堆積記憶體的設定: bin_run-qpidd_qpid.run.jvm.max_vm_heap=1024m
  • 堆外記憶體的設定: bin_run-qpidd_qpid.run.jvm.max_direct_memory_size=3072m

詳情請見 如何變更 Qpid 設定: 瞭解如何覆寫設定

若需更多資訊,請參閲 記憶體的 Apache Qpid 參考資料

磁碟

Qpid Broker 的資料目錄為 $APIGEE_ROOT/data/apigee-qpidd。Qpid 代理程式的記錄儲存在 $APIGEE_ROOT/var/log/apigee-qpidd 中。

託管資料目錄的檔案系統效能,是整個 Broker 效能的關鍵。為獲得最佳效能,請選擇延遲時間短且其他應用程式未使用的裝置。

Qpid 代理程式會將訊息保留在資料目錄中。根據預設,Broker 會接受訊息,直到代管資料目錄的檔案系統達到 80% 的容量為止。您可以修改此設定 門檻,以覆寫下方範例所示的各個 Qpid 節點設定。

bin_run-qpidd_qpid.store.filesystem.maxUsagePercent=60

在此範例中,當基礎檔案系統為 60% 時,代理程式會拒絕新郵件 。

如何變更 Qpid 設定

如何變更 Qpid 設定:

  1. 建立或編輯下列檔案:
    $APIGEE_ROOT/customer/application/qpidd.properties
  2. 視需要新增、移除或修改設定。舉例來說,如要將 Qpid Broker 的最大堆積記憶體變更為 6 GB,請在檔案中新增下列設定覆寫值:
    bin_run-qpidd_qpid.run.jvm.max_vm_heap=6144M
  3. 儲存變更,並確保 apigee 使用者已擁有且可讀取檔案:
    chown apigee:apigee $APIGEE_ROOT/customer/application/qpidd.properties
  4. 重新啟動 qpidd 程序:
    apigee-service apigee-qpidd 重新啟動