10.2.5. 配置消息日志属性
下列属性是消息传递服务器的所有子属性。因此,使用管理 CLI 获取和设置值的命令语法分别相同。
要读取给定属性的当前值,其语法如下:
/subsystem=messaging-activemq/server=default:read-attribute(name=ATTRIBUTE_NAME)
/subsystem=messaging-activemq/server=default:read-attribute(name=ATTRIBUTE_NAME)编写属性值的语法遵循对应的模式。
/subsystem=messaging-activemq/server=default:write-attribute(name=ATTRIBUTE_NAME,value=NEW_VALUE)
/subsystem=messaging-activemq/server=default:write-attribute(name=ATTRIBUTE_NAME,value=NEW_VALUE)- create-journal-dir- 如果设置为 - true,日志目录将在- journal-directory中指定的位置(如果尚不存在)自动创建。默认值为- true。
- journal-file-open-timeout- 此属性修改打开日志文件的超时值。默认值为 - 5秒。
- journal-buffer-timeout- 我们不需要刷新每个需要刷新的写入操作,而是维护一个内部缓冲区,而是在缓冲区已满时或超时过期时清空整个缓冲区,以以较快者为准。这可用于 NIO 和 ASYNCIO,允许系统通过许多需要清空的并发写入更好地扩展。 - 此参数控制在尚未填充缓冲区时清空缓冲区的超时时间。ASYNCIO 通常可以应对比 NIO 更高的清空率,因此系统在 NIO 和 ASYNCIO 中保持不同的默认值。NIO 的默认值为 - 3333333纳秒,每秒为 300 倍。ASYNCIO 的默认值为- 500000纳秒,每秒为 2000 倍。注意- 通过增大超时时间,您可以提高系统吞吐量,但会牺牲延迟,选择默认参数以在吞吐量和延迟之间达到合理的平衡。 
- journal-buffer-size- ASYNCIO 上定时缓冲区的大小(以字节为单位)。 - journal-buffer-size和- journal-file-size必须大于- min-large-message-size。否则,消息不会写入日志中。如需更多信息,请参阅配置大型消息。
- journal-compact-min-files- 在考虑压缩日志前,最少的文件数量。只有至少有 - journal-compact-min-files才会启动压缩算法。- 将此设置为 - 0将禁用完全压缩功能。虽然日志可能会无限增长,但这可能会很危险。明智地使用它!- 此参数的默认值为 - 10
- journal-compact-percentage- 开始紧凑的阈值。当将少于这个百分比视为实时数据时,我们开始缩减。另请注意,在 - 日志中至少有 journal-compact-min-files数据文件前,压缩不会启动- 此参数的默认值为 - 30。
- journal-file-size- 各个日志文件的大小,以字节为单位。此默认值为 - 10485760字节,即 10MB。- journal-file-size和- journal-buffer-size必须设置为大于- min-large-message-size。否则,消息不会写入日志中。如需更多信息,请参阅配置大型消息。
- journal-max-io- 在将写入请求提交到系统以执行之前,写入请求会被排队。此参数控制任意时间上 IO 队列中的最大写入请求数。如果队列已满,则写入将阻止,直到空间被释放。 - 系统会保留这个参数的不同默认值,具体取决于它是 NIO 还是 ASYNCIO。NIO 的默认值为 - 1,ASYNCIO 的默认值为- 500。- 存在一个限制,最大 ASYNCIO 的值不能超过在 OS 级别配置时,在 /proc/sys/fs/aio-max-nr(通常为 - 65536)中配置的 ASYNCIO。
- journal-min-files- 日志将维护的最少文件数。当 JBoss EAP 启动且没有初始消息数据时,JBoss EAP 将预先创建 - journal-min-files号文件数。默认值为- 2。- 创建日志文件并使用 padding 填充它们是一个相当昂贵的操作,我们希望在文件填写时尽可能避免这样做。通过预创建文件,在填写后,日志可以立即恢复下一个日志,而不必暂停创建日志。 - 根据您期望队列以稳定状态包含的数据量,您应该调整这一数量的文件以匹配该数据总量。 
- journal-pool-files- 可重复使用的日志文件数量。虽然在回收文件时,ActiveMQ 将根据需要创建任意数量的文件,但是,在回收文件时,它将回滚到 值。默认值为 - -1,即没有限制。
- journal-sync-transactional- 如果设置为 true,则 JBoss EAP 将确保所有事务数据在事务边界上清空到磁盘,如提交、准备或回滚。默认值为 - true。
- journal-sync-non-transactional- 如果设置为 true,则 JBoss EAP 将确保每次都清空到磁盘,如发送和确认等非事务消息数据。默认值为 - true。
- journal-type- 有效值为 - NIO或- ASYNCIO。- 选择 - NIO可让 JBoss EAP 使用 Java NIO 日志。- ASYNCIO告诉它使用 Linux 异步 IO 日志。如果您选择- ASYNCIO但没有运行 Linux,或者您尚未安装 libaio,那么 JBoss EAP 将使用 Java NIO 日志。