您正在查看 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 和字串簡化功能。
事前準備
- 如果您不熟悉 G1GC,請參閱「 開始使用 G1 垃圾收集器」一文
- 如果您不熟悉字串重複功能,請參閱 G1 垃圾收集器的字串刪除作業
- 如果您不熟悉如何為邊緣訊息處理器啟用 G1GC,請參閱「 在訊息處理器中啟用 G1GC」一文。
- 如果您不熟悉如何設定私有雲中的屬性,請參閱如何設定 Edge。
在訊息處理器中啟用字串重複功能
本節說明如何啟用邊緣訊息處理器的「字串重複」功能。您可以透過訊息處理工具元件的 useStringDeduplication
屬性啟用字串重複功能。在這個屬性中,這個屬性會設為 false。如要在訊息處理器中設定任何屬性,請按照如何設定 Edge 一文所述的語法使用權杖。
如要在訊息處理器中啟用字串重複功能,請按照下列步驟操作:
找出 useStringDeduplication 屬性的權杖
下列步驟說明如何找出 useStringDeduplication 的權杖:
-
在下列指令使用訊息處理工具來源目錄
/opt/apigee/edge-message-processor/source
搜尋useStringDeduplication
屬性:grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/source
-
這個指令的輸出結果會顯示訊息處理工具的屬性
useStringDeduplication
,如下所示:/opt/apigee/edge-message-processor/source/conf/system.properties:useStringDeduplication={T}conf_system_useStringDeduplication{/T}
{T}{/T}
標記之間的字串,就是您在訊息處理工具的.properties
檔案中設定的權杖名稱。因此,useStringDeduplication
屬性的權杖如下所示:conf_system_useStringDeduplication
為訊息處理工具啟用字串重複功能
下列步驟說明如何在 Apigee 訊息處理器中啟用字串重複功能:
-
在編輯器中開啟訊息處理機上的
/opt/apigee/customer/application/message-processor.properties
檔案。如果檔案不存在,請建立檔案。 例如:vi /opt/apigee/customer/application/message-processor.properties
-
在這個檔案中新增以下內容:
conf_system_useStringDeduplication=true
- 儲存變更。
-
確定此屬性檔案是由
apigee
使用者所擁有。例如:chown apigee:apigee /opt/apigee/customer/application/message-processor.properties
-
使用下列指令來重新啟動訊息處理工具:
/opt/apigee/apigee-service/bin/apigee-service edge-message-processor restart
- 如果您擁有多個訊息處理器,請在「訊息處理器」中重複執行上述步驟。
在訊息處理器上驗證字串重複
本節說明如何確認「訊息處理器」已成功啟用「字串重複」功能。
即使您使用權杖 conf_system_useStringDeduplication
啟用訊息處理器中的字串重複功能,但仍必須驗證實際屬性 useStringDeduplication
是否已使用新值設定,如下所示:
-
在
/opt/apigee/edge-message-processor/conf
目錄中搜尋useStringDeduplication
屬性,並檢查該屬性是否已以新值進行設定。例如:grep -ri "useStringDeduplication" /opt/apigee/edge-message-processor/conf
-
如果成功在訊息處理工具中啟用字串重複功能,先前的指令就會在
system.properties
檔案中顯示新值。您在訊息處理器中啟用字串重複功能後,先前的指令範例結果如下:
/opt/apigee/edge-message-processor/conf/system.properties:useStringDeduplication=true
在範例中,請注意
useStringDeduplication
屬性已設為system.properties
中的新值true
。這表示「訊息處理工具」已成功啟用「字串重複」功能。 -
如果還是看到
useStringDeduplication
屬性的舊值,請確認您已按照「對訊息處理器啟用字串刪除功能」所述的所有步驟操作。如果你錯過任何步驟,請再次正確完成所有步驟。 - 如果您仍無法啟用字串重複功能,請與 Apigee 支援團隊聯絡。