ActiveMQ 消息持久化机制:

ActiveMQ 消息的持久化机制有 JDBC、AMQ、KahaDB 和 LevelDB,其中本示例版本(5.15.2)默认机制为 KahaDB。无论哪种持久化机制, 消息的存储逻辑都是一致的。

即消息生产者将消息发送之后, 消息中心首先将消息存储到本地数据文件(AMQ/KahaDB),内存数据库(LevelDB)或远程数据库(JDBC)等,然后试图将消息发送给消费者,发送成功将消息从存储中删除,失败则继续尝试。

ActiveMQ启动以后首先会检查指定的持久化机制指定的存储位置,若有未发送的消息,将消息发送出去。

JDBC持久化 MySQL:

配置:

在conf/activemq.xml中persistenceAdapter节点配置jdbcPersistenceAdapter子节点,用于定义持久化方式,在此子节点中定义数据源属性(dataSource="#mysql-ds")指向数据源bean节点。

在beans主节点中定义数据源bean节点,id属性定义为持久化方式中的dataSource属性值。

1 <persistenceAdapter>
2     <!-- 持久化远程数据库 -->
3     <jdbcPersistenceAdapter dataSource="#mysql-ds"  createTablesOnStartup="true"/> 
4 </persistenceAdapter>
activemq.xml

相关文章: