4.10. 配置代理可用的最大 JVM 内存


默认情况下,代理可用的最大内存为代理 Java 虚拟机(JVM)的最大内存。您可以通过指定新限制来覆盖默认内存限值,该限制是 JVM 或绝对值的最大可用内存百分比。通过指定百分比值,您可以避免在 JVM 内存量更改时更改值。

注意

建议您为单个地址设置内存用量限制,而不是依赖于所有地址的更大的全局限制。如果您有所有地址的全局限制,则内存中的对象数量可以访问影响代理正常操作的级别。要为单个地址设置内存限制,请使用 maxSizeBytes 属性。如需更多信息,请参阅 第 8.1 节 “自定义资源配置参考”

流程

  1. 编辑用于代理部署的 ActiveMQArtemis 自定义资源(CR)。
  2. 如果要为代理设置内存限值,该限值是 JVM 可用最大内存的百分比,请在 CR 的 spec 部分添加 brokerProperties 部分。在 brokerProperties 部分中,添加一个 globalMaxSizePercentOfJvmMaxMemory 属性并指定内存限制。在以下示例中,内存限值为 JVM 可用最大内存的 60%。

    spec:
      ...
      brokerProperties:
      - globalMaxSizePercentOfJvmMaxMemory=60
    Copy to Clipboard Toggle word wrap
  3. 如果要为新内存限值指定绝对值,请在 CR 的 spec 部分添加一个 brokerProperties 部分。在 brokerProperties 部分中,添加一个 globalMaxSize 属性并指定内存限制。例如:

    spec:
      ...
      brokerProperties:
      - globalMaxSize=500m
      ...
    Copy to Clipboard Toggle word wrap

    globalMaxSize 属性的默认单位是字节。要更改默认单元,请将 m (用于 MB)或 g (用于 GB)的后缀添加到值。

  4. 配置您希望代理在达到您设置的内存限值后针对所有进一步消息执行的操作。例如:

    spec:
      ...
      brokerProperties:
      - addressSettings.<address match>.addressFullMessagePolicy=<action>
      ...
    Copy to Clipboard Toggle word wrap

    有效操作有:

    PAGE
    代理将任何其他消息页到磁盘。
    DROP
    代理静默丢弃任何进一步的信息。
    FAIL
    代理丢弃任何进一步的消息,并向客户端消息制作者发出例外问题。
    BLOCK
    客户端消息制作者在尝试发送进一步消息时阻止。

    在以下示例中,达到内存限制时,将分页 usa-news 地址的消息。

    spec:
      ...
      brokerProperties:
      - addressSettings.usa-news.addressFullMessagePolicy=PAGE
      ...
    Copy to Clipboard Toggle word wrap
  5. 保存 CR。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat