ActiveMQ使用笔记(二)ActiveMQ消息持久化(1)

在broker中设置属性persistent=”true”(默认是true),同时发送的消息也应该是persitent类型的。ActiveMQ消息持久化有三种方式:AMQ、KahaDB、JDBC。

1、AMQ

AMQ是一种文件存储形式,它具有写入速度快和容易恢复的特点。消息存储在一个个文件中,文件的默认大小为32兆,如果一条消息的大小超过了32兆,那么这个值必须设置大点。当一个存储文件中的消息已经全部被消费,那么这个文件将被标识为可删除,在下一个清除阶段,这个文件被删除。默认配置如下:

AMQ的属性:

属性名称 默认值 描述
directory activemq-data 消息文件和日志的存储目录
useNIO true 使用NIO协议存储消息
syncOnWrite false 同步写到磁盘,这个选项对性能影响非常大
maxFileLength 32mb 一个消息文件的大小
persistentIndex true 消息索引的持久化,如果为false,那么索引保存在内存中
maxCheckpointMessageAddSize 4kb 一个事务允许的最大消息量
cleanupInterval 30000 清除操作周期,单位ms
indexBinSize 1024 索引文件缓存页面数,缺省为1024,当amq扩充或者缩减存储时,会锁定整个broker,导致一定时间的阻塞,所以这个值应该调整到比较大,但是代码中实现会动态伸缩,调整效果并不理想。
indexKeySize 96 索引key的大小,key是消息ID
indexPageSize 16kb 索引的页大小
directoryArchive archive 存储被归档的消息文件目录
archiveDataLogs false 当为true时,归档的消息文件被移到directoryArchive,而不是直接删除

 

此条目发表在ActiveMQ, 实施配置分类目录,贴了, 标签。将固定链接加入收藏夹。

发表评论