在消息处理器中启用字符串重复信息删除

您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
info

本文档介绍了如何在 Apigee Edge 的消息处理器上启用字符串重复数据删除功能。

字符串重复数据删除是一项 Java 功能,可帮助您节省 Java 应用中重复 String 对象占用的内存。它通过使重复或相同的 String 值共享同一字符数组来减少 Java 堆 内存中 String 对象的内存占用空间。

Apigee Edge 消息处理器是一个基于 Java 的组件。在消息 处理器中使用字符串重复数据删除功能可以减少内存用量,从而提高 API 代理的性能,尤其是在 API 代理大量使用字符串的情况下。

字符串重复数据删除功能只能在 Java 应用中与 G1 垃圾回收器 (G1GC) 搭配使用。如果您想在消息处理器上启用此功能,则需要已启用 G1GC,或者在消息处理器上同时启用 G1GC 和字符串重复数据删除功能。

准备工作

在消息处理器上启用字符串重复数据删除功能

本部分介绍了如何在 Edge 消息处理器上启用字符串重复数据删除功能。您可以通过消息处理器组件上的属性 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