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 日志。