ActiveMQ消息持久化-LevelDB

LevelDB

这种文件系统是从ActiveMQ5.8之后引进的,它和KahaDB非常相似,也是基于文件的本地数据库储存形式,但是它提供比KahaDB更快的持久性。与KahaDB不同的是,它不是使用传统的B-树来实现对日志数据的提前写,而是使用基于索引的LevelDB。

<broker brokerName="broker" ... >
  ...
  <persistenceAdapter>
    <levelDB directory="activemq-data"/>
  </persistenceAdapter>
  ...
</broker>

配置项

属性 默认值 描述
directory "LevelDB" 保存数据文件的目录
sync true 是否同步日志操作到磁盘
logSize 104857600 (100 MB) 每个日志文件的最大值
verifyChecksums false 是否对从文件系统中读取的数据进行校验
paranoidChecks false 尽快对系统内部发生的存储错误进行标记
indexFactory org.fusesource.leveldbjni.JniDBFactory, org.iq80.leveldb.impl.Iq80DBFactory 创建LevelDB索引的工厂类
indexMaxOpenFiles 1000 可以被索引文件使用的打开文件的最大数量
indexBlockRestartInterval 16 Number keys between restart points for delta encoding of keys.
indexWriteBufferSize 6291456 (6 MB) 内存中的索引数据最大值,在存入磁盘之前
indexBlockSize 4096 (4 K) 每个数据块的索引数据大小
indexCacheSize 268435456 (256 MB) 用于缓存索引块的非堆内存最大值
indexCompression snappy 索引块的要锁类型, snappy 或 none
logCompression none 日志录的压缩类型, snappy 或 none

参考资料:

http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html

http://blog.csdn.net/kobejayandy/article/details/50736479

http://blog.csdn.net/terrymanu/article/details/37567217

http://activemq.apache.org/leveldb-store.html

时间: 2024-11-06 04:08:53

ActiveMQ消息持久化-LevelDB的相关文章

JMS消息持久化,将ActiveMQ消息持久化到mySql数据库中

ActiveMQ5.8.0版本采用kahadb作为默认的消息持久化方式.使用默认的持久化机制,我们不容易直接看到消息究竟是如何持久的.ActiveMQ提供的JDBC持久化机制,能够将持久化信息存储到数据库.通过查看数据库中ActiveMQ生成的表结构和存储的数据,能够帮助我们更好的了解消息的持久化机制.现在介绍如何配置activemq,将数据持久化到mysql中. 1.配置activeMQ需要的mySql数据源 为了能够使用JDBC访问mysql数据库,显然必须要配置消息服务器的数据库源.在ac

ActiveMQ消息持久化机制

为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制. ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的. 就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件.内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试. 消息中心启动以后首先要检查制定的存储位置,如果有未发送成功的消息,则需要把消息发送出去. >>

ActiveMQ消息持久化-JDBC

JDBC 可以将消息存储到数据库中,例如:Mysql.SQL Server.Oracle.DB2. 使用JDBC持久化方式,数据库会创建3个表:activemq_msgs,activemq_acks和activemq_lock. 一.配置方式(Oracle): conf/acticvemq.xml <beans>   <broker brokerName="test-broker" persistent="true" xmlns="htt

ActiveMQ消息持久化-KahaDB

KahaDB KahaDB是从ActiveMQ 5.4开始默认的持久化插件. KahaDb恢复时间远远小于其前身AMQ并且使用更少的数据文件,所以可以完全代替AMQ.(AMQ适用于ActiveMQ5.3之前的版本.) KahaDB的持久化机制同样是基于日志文件,索引和缓存. 一.配置方式: activemq.xml <persistenceAdapter>       <kahaDB directory="${activemq.data}/kahadb"/> &

Activemq消息持久化

官方文档: http://activemq.apache.org/persistence.html ActiveMq持久化相关配置:/usr/local/apache-activemq-5.11.1/conf/activemq.xml 官方默认的持久化为Kahadb: <persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb" </persistenceAdapter> 可以稍作调优:

ActiveMQ 消息持久化到Mysql数据库

[[email protected] local]# tar -zxvf apache-activemq-5.15.8-bin.tar.gz[[email protected] local]# mv apache-activemq-5.15.8 activemq[[email protected] activemq]# cd conf/[[email protected] conf]# pwd/usr/local/activemq/conf[[email protected] conf]# cp

JMS与ActiveMQ消息数据持久化

认识JMSJMS是Java消息服务(Java message service),是java平台关于面向消息中间件(MOM)的API.用于两个应用程序或分布式系统应用中,消息发送,消息异步处理.即应用程序间通信通过JMS服务,进行消息转发.应用程序间消息异步处理可解除应用程序的耦合.JMS有消息异步处理.程序间解耦.消息可靠的优势. JMS消息模型Queue点对点(Point to Point)Queue队列是点对点消费,发送者发送一条消息,只有唯一的一个消费者能对消息进行消费.消息生产者都将消息

ActiveMQ的消息持久化机制

为了避免意外宕机以后丢失信息,需要做到重启后可以恢复消息队列,消息系统一般都会采用持久化机制. ActiveMQ的消息持久化机制有JDBC,AMQ,KahaDB和LevelDB,无论使用哪种持久化方式,消息的存储逻辑都是一致的. 就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件.内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试. 消息中心启动以后首先要检查指定的存储位置,如果有未发送成功的消息,则需要把消息发送出去. 1. J

ActiveMQ(3)---ActiveMQ原理分析之消息持久化

持久化消息和非持久化消息的存储原理 正常情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的.能够存储的最大消息数据在${ActiveMQ_HOME}/conf/activemq.xml文件中的systemUsage节点 ,SystemUsage配置设置了一些系统内存和硬盘容量 <systemUsage> <systemUsage> <memoryUsage> //该子标记设置整个ActiveMQ节点的“可用内存限制”.这个值不能超过ActiveMQ本身设置