ActiveMQ 消息存储持久化,华为 java 面试难度
3.JDBC 消息存储-消息基于 JDBC 存储的
4.Memory 消息存储-基于内存的消息存储
下面就分别进行介绍:
(1)kahaDB Message Store 概述
KahaDB 是目前默认的存储方式,可用于任何场景,提高了性能和恢复能力。消息存储使用一个事务日志和仅仅用一个索引文件来存储它所有的地址。
KahaDB 是一个专门针对消息持久化的解决方案,它对典型的消息使用模式进行了优化。在 kaha 中,数据被追 《一线大厂 Java 面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》开源 加到 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: 在检查到不再使用的消息后, Java 开源项目【ali1024.coding.net/public/P7/Java/git】 在具体删除消息前的时间,默认 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
总结
在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。
评论