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

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

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

「字串重複」是一種 Java 功能,可協助您在 Java 應用程式中儲存重複的字串物件佔用的記憶體。這會透過重複或相同的 String 值共用相同的字元陣列,降低 Java 堆積記憶體上的 String 物件記憶體使用量。

Apigee Edge Message Processor 是一種 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
    

    在範例中,請注意 useStringDeduplication 屬性已設為 system.properties 中的新值 true。這表示「訊息處理工具」已成功啟用「字串重複」功能。

  3. 如果還是看到 useStringDeduplication 屬性的舊值,請確認您已按照「對訊息處理器啟用字串刪除功能」所述的所有步驟操作。如果你錯過任何步驟,請再次正確完成所有步驟。
  4. 如果您仍無法啟用字串重複功能,請與 Apigee 支援團隊聯絡。

接下來要做什麼呢?

為訊息處理器啟用 G1GC