6.2. 配置基于日志的持久性
持久性配置在文件 BROKER_INSTANCE_DIR/etc/broker.xml
中进行维护。代理的默认配置使用基于日志的持久性,包括以下元素。
<configuration> <core> ... <persistence-enabled>true</persistence-enabled> <journal-type>ASYNCIO</journal-type> <bindings-directory>./data/bindings</bindings-directory> <journal-directory>./data/journal</journal-directory> <journal-datasync>true</journal-datasync> <journal-min-files>2</journal-min-files> <journal-pool-files>-1</journal-pool-files> ... </core> </configuration>
- 启用持久性
- 指定是否将基于文件的日志用于消息持久性。
- journal-type
-
要使用的日志类型。如果设置为
ASYNCIO
,则代理首先尝试使用 AIO。如果没有找到 ASYNCIO,则代理会返回 NIO。 - bindings-directory
-
绑定日志的文件系统位置。默认设置为
BROKER_INSTANCE_DIR
。 - journal-directory
-
消息传递日志的文件系统位置。默认设置为
BROKER_INSTANCE_DIR
。 - journal-datasync
-
指定是否使用
fdatasync
确认对磁盘的写入操作。 - journal-min-files
- 代理启动时要创建的日志文件数量。
- journal-pool-files
- 回收未使用的文件后要保留的文件数量。默认值 -1 表示在清理过程中不会删除任何文件。
6.2.1. Message Journal
消息日志存储所有与消息相关的数据,包括消息本身和重复的 ID 缓存。此日志上的文件的前缀为 activemq-data
。每个文件都有一个 amq
扩展名,默认大小为 10485760
字节。使用 journal-directory
配置元素设置消息日志的位置。默认值为 BROKER_INSTANCE_DIR/data/journal
。默认配置包含与消息传递日志相关的其他元素:
journal-min-files
代理启动时预先创建的日志文件数量。默认值为
2
。journal-pool-files
回收未使用的文件后要保留的文件数量。默认值
-1
表示代理创建后不会删除任何文件。但是,该系统不能无限增加,因此您需要将分页用于未绑定的目的地。如需更多信息,请参阅关于使用消息 的章节。
消息传递日志提供了其他一些配置元素。有关 完整的列表,请参见附录。