消息持久化的方式有以下5种:
- AMQ Message Store(了解)
- KahaDB消息存储(默认)
- JDBC消息存储(常用)
- LevelDB消息存储(了解)
- JDBC Message store with ActiveMQ Journal
AMQ Message Store:基于文件的存储方式,是旧版本的默认消息存储,现在不使用了。它具有写入速度快和容易恢复的特点。消息存储在一个个文件中,文件默认大小是32M,当一个存储文件中的消息已经被消费,这个文件被标记为可删除,在下一清除阶段,这个文件就被删除了。AMQ在ActiveMQ 5.3版本之前适用。
KahaDB:基于日志文件存储,从ActiveMQ 5.4版本开始默认的持久化存储方式。再回到conf目录下的activemq.xml中,可以看到下面一段话。
<!--
Configure message persistence for the broker. The default persistence
mechanism is the KahaDB store (identified by the kahaDB tag).
For more information, see:
http://activemq.apache.org/persistence.html
-->
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
这个地方配置的directory的意思是:持久化的文件都存储在了data/kahadb文件夹下,我们可以在这个文件夹下看到4个文件。