在訊息處理器中啟用字串重複功能

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

本文說明如何在 Apigee Edge 的訊息處理器上啟用字串重複功能。

字串刪除是一項 Java 功能,可在 Java 應用程式中協助儲存因重複字串物件而佔用的記憶體。這會讓重複或相同的字串值共用同一個字元陣列,藉此減少 Java 堆積記憶體中字串物件的記憶體用量。

Apigee Edge 訊息處理器是以 Java 為基礎的元件。在訊息處理器中使用字串簡化功能,可以降低記憶體用量,藉此改善 API Proxy 的效能,特別是當 API Proxy 大量使用字串時。

字串簡化功能只能用於 Java 應用程式中的 G1 垃圾收集器 (G1GC)。如要在訊息處理器上啟用這項功能,必須先啟用 G1GC,或在訊息處理器上同時啟用 G1GC 和字串簡化功能。

事前準備

在訊息處理器上啟用字串重複功能

本節說明如何在邊緣訊息處理器中啟用「字串刪除」功能。您可以透過訊息處理器元件中的 useStringDeduplication 屬性,啟用字串重複功能。根據預設,訊息處理器中的這個屬性會設為 false。如要在訊息處理器上設定任何屬性,請根據「如何設定 Edge」一節所述的語法使用權杖。

如要啟用訊息處理器上的「字串簡化」功能,請執行下列步驟:

  1. 找出 useStringDeduplication 屬性的權杖
  2. 啟用訊息處理器的 useStringDeduplication

找出 useStringDeduplication 屬性的權杖

下列步驟說明如何找出 useStringDeduplication 的權杖:

  1. 使用下列指令,在訊息處理器來源目錄 /opt/apigee/edge-message-processor/source 中搜尋 useStringDeduplication 屬性:
    grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/source
    
  2. 這個指令的輸出內容顯示訊息處理器屬性 useStringDeduplication 的權杖,如下所示:
    /opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}
    

    其中 {T}{/T} 標記之間的字串是您可以在訊息處理器的 .properties 檔案中設定的憑證名稱。因此,屬性 useStringDeduplication 的權杖如下:

    conf_system_useStringDeduplication
    

在訊息處理器上啟用字串重複功能

下列步驟說明如何在 Apigee 訊息處理器上啟用字串刪除功能:

  1. 在編輯器中開啟訊息處理器機器上的 /opt/apigee/customer/application/message-processor.properties 檔案。如果檔案不存在,請建立檔案。例如:
    vi /opt/apigee/customer/application/message-processor.properties
    
  2. 在這個檔案中新增以下內容:
    conf_system_useStringDeduplication=true
    
  3. 儲存變更。
  4. 請確認這個屬性檔案為 apigee 使用者所有。例如:
    chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
    
  5. 使用下列指令重新啟動訊息處理器:
    /opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
    
  6. 如果您有不只一個訊息處理器,請在所有訊息處理器上重複上述步驟。

在訊息處理器上驗證字串簡化

本節說明如何驗證訊息處理器是否已成功啟用字串刪除功能。

即使您使用權杖 conf_system_useStringDeduplication 來在訊息處理器上啟用「字串重複」功能,仍須驗證實際使用新的值設定 useStringDeduplication 屬性,如下所示:

  1. /opt/apigee/edge-message-processor/conf 目錄中搜尋 useStringDeduplication 屬性,並檢查該屬性是否已設為新的值。例如:
    grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/conf
    
  2. 如果在訊息處理器中成功啟用字串簡化功能,上一個指令會在 system.properties 檔案中顯示新值。

    在訊息處理器上啟用字串簡化功能後,上一個指令的範例結果如下:

    /opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
    

    在範例輸出中,請注意,system.properties 中的新值 true 已設為 useStringDeduplication。這表示訊息處理器已成功啟用字串刪除功能。

  3. 如果還是看到屬性 useStringDeduplication 的舊值,請確認您已正確遵循在訊息處理器上啟用字串重複功能中所述的所有步驟。如果您錯過任何步驟,請再次正確重複所有步驟。
  4. 如果還是無法啟用字串刪除功能,請與 Apigee 支援團隊聯絡。

接下來呢?

在訊息處理器上啟用 G1GC