Activemq消息持久化

官方文档: http://activemq.apache.org/persistence.html

ActiveMq持久化相关配置:/usr/local/apache-activemq-5.11.1/conf/activemq.xml

以下是修改activemq的配置,具体的使用场景,等着发demo吧,在测试中

官方默认的持久化为Kahadb:

<persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"
</persistenceAdapter>

可以稍作调优:如果不想使用数据库的持久化,则使用下面的方式优化以下持久化消息信息

<persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"
                indexWriteBatchSize="1000" 
                journalMaxFileLength="32mb" 
                enableIndexWriteAsync="true" 
                enableJournalDiskSyncs="false"/>
</persistenceAdapter>

实例展示使用mysql持久化:

修改persistenceAdapter节点:

<persistenceAdapter>
           <jdbcPersistenceAdapter  directory="${activemq.data}/mysqldb" dataSource="#ds-mysql"/>
       </persistenceAdapter>
在<import resource="jetty.xml"/>节点前面增加mysql的相关配置信息
 <bean id="ds-mysql" class="com.alibaba.druid.pool.DruidDataSource" destroy-method="close">
       <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
       <property name="url" value="jdbc:mysql://192.168.1.202:3306/activemq?relaxAutoCommit=true"/>
       <property name="username" value="root"/>
       <property name="password" value="fxtx1105"/>
       <property name="maxActive" value="200"/>
       <property name="poolPreparedStatements" value="true"/>
    </bean>

添加依赖的druid和mysql驱动包到lib

创建activemq数据库重启Activemq,可以看到在activemq库中增加了三个表

消息被消费了之后持久化的记录会删除.

网上说持久化感觉性能不好,而且消息消费容易锁住.希望得到好的意见和建议 ,我正在测试中

猜你喜欢

转载自my.oschina.net/wugong/blog/1791197