ActiveMQ消息存储持久化

本文介绍了ActiveMQ的几种消息存储方式,重点阐述了KahaDB作为默认存储的优化特性,包括配置参数和适用场景。同时提到了Java开发者的学习资源,如《2024年Java开发全套学习资料》的重要性。
摘要由CSDN通过智能技术生成

---------------------------------------------------------------------------------------------------

ActiveMQ提供了插件式的消息存储,主要有有如下几种:

1.AMQ消息存储-基于文件的存储方式,是以前的默认消息存储

2.KahaDB消息存储-提供了容量的提升和恢复能力,是现在的默认存储方式

3.JDBC消息存储-消息基于JDBC存储的

4.Memory消息存储-基于内存的消息存储

下面就分别进行介绍:

(1)kahaDB Message Store概述

KahaDB是目前默认的存储方式,可用于任何场景,提高了性能和恢复能力。消息存储使用一个事务日志和仅仅用一个索引文件来存储它所有的地址。

KahaDB是一个专门针对消息持久化的解决方案,它对典型的消息使用模式进行了优化。在kaha中,数据被追加到 data logs中。 当不再需要log文件中的数据的时候,log文件会被丢弃。

KahaDB基本配置如下:

可用的属性有:

1. director: KahaDB存放的路径,默认值activemq-data

2. indexWriteBatchSize: 批量写入磁盘的索引page数量,默认值为1000

3. indexCacheSize: 内存中缓存索引page的数量,默认值10000

4. enableIndexWriteAsync: 是否异步写出索引,默认false

5. journalMaxFileLength: 设置每个消息data log的大小,默认是32MB

6. enableJournalDiskSyncs: 设置是否保证每个没有事务的内容,被同步写入磁盘,JMS持久化的时候需要,默认为true

7. cleanupInterval: 在检查到不再使用的消息后,在具体删除消息前的时间,默认30000

8. checkpointInterval: checkpoint的间隔时间,默认是5000

9. ignoreMissingJournalfiles: 是否忽略丢失的消息日志文件,默认false

10. checkForCorruptJournalFiles: 在启动的时候,将会验证消息文件是否损坏,默认false

11. checksumJournalFiles: 是否为每个消息日志文件提供checksum,默认false

12. archiveDataLogs: 是否移动文件到特定的路径,而不是删除它们,默认false

13. directoryArchive: 定义消息已经被消费过后,移动data log到的路径,默认null

14. databaseLockedWaitDelay: 获得数据库锁的等待时间(used by shared master/slave),默认10000

15. maxAsyncJobs: 设置最大的可以存储的异步消息队列,默认值10000,可以和concurrent MessageProducers设置成一样的值。

16. concurrentStoreAndDispatchTransactions:是否分发消息到客户端,同时事务存储消息,默认true

17. concurrentStoreAndDispatchTopics: 是否分发Topic消息到客户端,同时进行存储,默认true

18. concurrentStoreAndDispatchQueues: 是否分发queue消息到客户端,同时进行存储,默认true

(2)AMQ Message Store概述

AMQ Message Store是ActiveMQ5.0缺省的持久化存储,它是一个基于文件、事务存储设计为快速消息存储的一个结构,该结构是以流的形式来进行消息交互的。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

最后我们该如何学习?

1、看视频进行系统学习

这几年的Crud经历,让我明白自己真的算是菜鸡中的战斗机,也正因为Crud,导致自己技术比较零散,也不够深入不够系统,所以重新进行学习是很有必要的。我差的是系统知识,差的结构框架和思路,所以通过视频来学习,效果更好,也更全面。关于视频学习,个人可以推荐去B站进行学习,B站上有很多学习视频,唯一的缺点就是免费的容易过时。

另外,我自己也珍藏了好几套视频资料躺在网盘里,有需要的我也可以分享给你:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

2、读源码,看实战笔记,学习大神思路

“编程语言是程序员的表达的方式,而架构是程序员对世界的认知”。所以,程序员要想快速认知并学习架构,读源码是必不可少的。阅读源码,是解决问题 + 理解事物,更重要的:看到源码背后的想法;程序员说:读万行源码,行万种实践。

Spring源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Mybatis 3源码深度解析:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Redis学习笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

Spring Boot核心技术-笔记:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

3、面试前夕,刷题冲刺

面试的前一周时间内,就可以开始刷题冲刺了。请记住,刷题的时候,技术的优先,算法的看些基本的,比如排序等即可,而智力题,除非是校招,否则一般不怎么会问。

关于面试刷题,我个人也准备了一套系统的面试题,帮助你举一反三:

1年半经验,2本学历,Curd背景,竟给30K,我的美团Offer终于来了

只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!
只有技术过硬,在哪儿都不愁就业,“万般带不去,唯有业随身”学习本来就不是在课堂那几年说了算,而是在人生的旅途中不间断的事情。

人生短暂,别稀里糊涂的活一辈子,不要将就。
《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门即可获取!

  • 15
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值