11.4. 配置分页模式


当发送到地址的消息超过配置的大小时,该地址将进入分页模式

注意

分页为每个地址单独执行。如果您为一个地址配置 max-size-bytes,这意味着每个匹配地址将具有您指定的最大大小。但并不意味着所有匹配地址的总大小都仅限于 max-size-bytes

即使使用 页面 模式,服务器也可能会因为内存不足而崩溃。JBoss EAP 消息传递保留对磁盘上每个页面文件的引用。在有数百万页面文件的情况下,JBoss EAP 消息传递可能会面临内存耗尽的情况。要最小化此风险,务必要将属性 page-size-bytes 设置为适当的值。您必须将 JBoss EAP 消息传递服务器的内存配置为目标数量为 max-size-bytes 的两倍,否则可能会出现内存不足错误。

您可以使用以下管理 CLI 命令,为地址读取当前的最大字节大小(最大字节数):

/subsystem=messaging-activemq/server=default/address-setting=ADDRESS_SETTING:read-attribute(name=max-size-bytes)
Copy to Clipboard Toggle word wrap

您可以使用以下管理 CLI 命令,为地址配置最大字节大小(最大字节数)。

/subsystem=messaging-activemq/server=default/address-setting=ADDRESS_SETTING:write-attribute(name=max-size-bytes,value=MAX_SIZE)
Copy to Clipboard Toggle word wrap

在读取或写入地址设置的其他分页相关属性的值时,请使用类似语法。下表列出了各个属性,以及描述和默认值。

下表描述了地址设置中的参数:

Expand
表 11.1. 地址设置的分页配置
元素描述

address-full-policy

此属性值用于分页决策。有效值如下所列。

页面
启用分页和页面信息(超过设定限制)到磁盘。
DROP
静默丢弃超过设置限制的消息。
FAIL
丢弃消息并向客户端消息制作者发送异常。
BLOCK
发送消息超过设定限制时,阻止客户端消息制作者。

默认值为 PAGE

max-size-bytes

这用于指定在进入分页模式前地址可以具有的最大内存大小。默认值为 10485760

page-max-cache-size

系统会将页面文件保持在内存中最多 page-max-cache-size,以便在分页导航期间优化输入/输出。默认值为 5

page-size-bytes

这用于指定分页系统中使用的每个页面文件的大小。默认值为 2097152

重要

默认情况下,所有地址都在地址到达 max-size-bytes 后配置为页面消息。如果您不想在达到最大大小时换页消息,您可以配置地址来丢弃消息,丢弃消息(客户端一侧除外)或阻止生产者通过分别将 address-full-policy 设置为 DROPFAILBLOCK 来发送其他消息。

请注意,如果在任何目的地启动到页面消息后,将 address-full-policyPAGE 更改为 BLOCK,则使用者将不再能够使用分页消息。

使用多个队列的地址

当消息路由到绑定有多个队列的地址时,内存中仅有一个消息副本。每个队列仅处理对该消息的原始副本的引用,因此仅当引用原始消息的所有队列都发送消息时,内存才会被释放。

注意

单个 lazy 队列/订阅可以降低整个地址的输入/输出性能,因为所有队列都将通过分页系统上的额外存储发送消息。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat