ActiveMQ消息持久化

本文详细介绍了ActiveMQ的消息存储方式,包括Queue和Topic消息模型,以及KahaDB、AMQ存储、JDBC存储和内存存储的特性、配置和工作原理。重点讨论了KahaDB作为默认持久化方式的存储结构和恢复机制。
摘要由CSDN通过智能技术生成
消息的存储方式
Queue消息模型

​ 采用存储采用先进先出(FIFO),一个消息只能被一个消费者消费,当消息被确认消费之后才会被删除。

Topic消息模型

​ 每个订阅者获取的消息实际是消息的一个副本,只有一个消息副本会被存储,MQ 提供了一个指针来指向消息存储并且分发消息副本到订阅者,消息直到所有的持久化订阅者都被接收才能被删除。

持久化存储
  • KahaDB消息存储
  • AMQ消息存储
  • JDBC消息存储
  • 内存消息存储
KahaDB

​ 默认的持久化方式,KahaDB存储是一个基于文件的快速存储消息,所有的消息顺序的添加到一个日志文件中,同时有另一个索引文件记录执行这些日志到存储地址,还有一个事务日志用于消息的恢复操作。

特性
  • 日志形式存储消息;
  • 消息索引以B-Tree结果存储,可以快速更新;
  • 完全支持JMS事务;
  • 支持多种恢复机制,kahadb可以限制每个数据文件的大小。
配置

​ 在activemq.xml中配置如下:

<broker brokerName="broker" persistent="true" useShutdownHook="false">
  <persistenceAdapter>
    <!--directory:保存数据的目录;journalMaxFileLength:保存消息的文件大小 -->
    <kahaDB directory="${activemq.data}/kahadb" journalMaxFileLength="16mb"/>
  </persistenceAdapter>
</broker>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值