8.3. 消息持久性配置属性更改

AMQ 6 和 AMQ Broker 7 均提供多个配置属性来控制代理如何持久保存消息。本节将 AMQ 6 KahaDB 日志中的配置属性与 AMQ Broker 7 内存中消息日志中等同的属性进行比较。

有关内存消息日志的每个消息持久性配置属性的完整详情,请查看以下内容:

8.3.1. 日志大小和管理

下表将 AMQ 6 中的日志大小和管理配置属性与 AMQ Broker 7 中的等同属性进行比较:

要设置…​在 AMQ 6 中在 AMQ Broker 7 中

清理不再使用的数据日志之间的时间间隔

cleanupInterval

默认值为 30000 ms。

无等效.在 AMQ Broker 7 中,不再使用超过池大小的日志文件。

在触发压缩前必须完成的消息存储 GC 周期数量,而不清理其他文件

compactAcksAfterNoGC

无等效.在 AMQ Broker 7 中,紧凑与特定的记录类型无关。

是否应在消息存储仍在增长时运行紧凑,或者仅在停止增长时才运行紧凑

compactAcksIgnoresStoreGrowth

默认值为 false

无等效.

在压缩代理前可以存储在代理中的最小日志文件数量

无等效.

<journal-compact-min-files>

默认值为 10。如果将此值设置为 0,则压缩将被取消激活。

开始压缩前到达的阈值

无等效.

<journal-compact-percentage>

默认值为 30%。当将低于这个百分比视为活动数据时,就会开始压缩。

保存消息存储数据的顶级文件夹的路径

directory

AMQ Broker 7 为每个类型的日志有单独的目录:

  • <journal-directory> - 默认值为 /data/journal
  • <bindings-directory> - 默认值为 /data/bindings
  • <paging-directory> - 默认值为 /data/paging
  • <large-message-directory> - 默认值为 /data/large-messages

如果绑定目录尚不存在,是否应自动创建绑定

无等效.

<create-bindings-dir>

默认值为 true

如果日志目录尚不存在,是否应自动创建日志目录

无等效.

<create-journal-dir>

默认值为 true

消息存储是否应该定期压缩仅包含消息确认的旧日志文件

enableAckCompaction

无等效.

数据日志文件的最大大小

journalMaxFileLength

默认值为 32 MB。

<journal-file-size>

默认值为 10485760 字节(10 MiB)。

需要新日志文件时代理应使用的策略

preallocationStrategy

默认值为 sparse_file

无等效.默认情况下,预分配的日志文件通常填有零,但可能因文件系统而异。

代理用来预分配日志文件的策略

preallocationScope

默认值为 entire_journal

当代理实例启动时,AMQ Broker 7 会自动预分配 <journal-min-files> 指定的日志文件。

日志类型( NIO 或 AIO)

无等效.

<journal-type>

您可以选择 NIO (Java NIO 日志)或 ASYNCIO (Linux 异步 I/O 日志)。

日志应维护的最少文件数

无等效.

<journal-min-files>

代理在回收文件时应保留的日志文件数量

无等效.

<journal-pool-files>

默认值为 -1,这意味着代理实例在创建后不会删除日志中的文件。