消息中间件(3)-ActiveMQ消息持久化
消息中间件(3)-ActiveMQ消息持久化
haoran_10 发表于1年前
消息中间件(3)-ActiveMQ消息持久化
  • 发表于 1年前
  • 阅读 47
  • 收藏 0
  • 点赞 0
  • 评论 0

ActiveMQ消息持久化

 

一、不使用持久化

<broker persistent= "false" >

</broker>

那么activemq 会自动使用 内存保存消息,使用  org.apache.activemq.store.memory.MemoryPersistenceAdapter 来保存

 

二、消息数据灾难恢复

http://activemq.apache.org/replicated-message-store.html

推荐使用Master/Slave

 

三、持久化

(1)、 Configuring Kaha Persistence,一种格式化消息到文件的引擎,当前ActiveMQ默认的消息持久化引擎。

5.0之前还有一种消息持久化引擎AMQ,但是已经废弃了,推荐使用Kaha。

Kaha Peristence 是一个消息持久化到文件的存储解决引擎,也是ActiveMQ项目的一部分。

提供最优性能进行调优的典型消息使用模式,其中包括写/读和丢弃的消息很快被保存。

数据存储在Kaha附加到数据日志,一旦数据不在有用处,日志文件会丢弃那部分数据。

ActiveMQ 5.0 and above:

<broker brokerName= "broker"  persistent= "true"  useShutdownHook= "false" >

    <transportConnectors>

      <transportConnector uri= "tcp://localhost:61616" />

    </transportConnectors>

    <persistenceAdapter>

      <kahaPersistenceAdapter directory= "activemq-data"  maxDataFileLength= "33554432" />

    </persistenceAdapter>

  </broker>

 

(2)、LevelDB Persistence

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

< persistenceAdapter >

         <   levelDBdirectory   =   "activemq-data"   />

</ persistenceAdapter >

 

(3)、使用JDBC持久化到数据库

<persistenceAdapter>

       <jdbcPersistenceAdapter dataSource= "#my-ds" />

</persistenceAdapter>

注:my-ds 数据库要预先定义好

 

 

(4)、 Replicated LevelDB Store 

 

在ActiveMQ 5.9中,复制并且存储。

它使用Apache zookeeper 从一组代理节点中配置(全部相同的配置),选择一个作为主节点并且存储消息,然后同步所有的其他子节点,让其他子节点更新通过复制到主节点的所有更新。

直白点:zookeeper+ActiveMQ集群,防止单节点挂机。

 

<persistenceAdapter>

            <replicatedLevelDB

                    directory="${activemq.data}"

                    replicas="2"

                    bind="tcp://0.0.0.0:61619"

                    zkAddress="127.0.0.1:2181"

                    zkPassword="password"

                    zkPath="/activemq/leveldb-stores"

                    />

</persistenceAdapter>

 

一图胜千言:

 

推荐使用此方式做为生产中配置。

 

 

 

参考的资料:

http://activemq.apache.org/persistence.html

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

http://my.oschina.net/u/1455908/blog/310115

 

共有 人打赏支持
粉丝 27
博文 88
码字总数 80846
×
haoran_10
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: