官方文档: 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>
可以稍作调优:
<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="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://192.168.147.131:3306/activemq?relaxAutoCommit=true"/> <property name="username" value="root"/> <property name="password" value="123456"/> <property name="maxActive" value="200"/> <property name="poolPreparedStatements" value="true"/> </bean>
添加依赖的dbcp和mysql驱动包到lib
创建activemq数据库重启Activemq,可以看到在activemq库中增加了三个表
发送queue类型消息:
消息被消费了之后持久化的记录会删除.
问题: 测试过程中持久化感觉性能不好,而且消息消费容易锁住.希望得到好的意见和建议 共同学习.
转载请注明出处:[http://www.cnblogs.com/dennisit/p/4552366.html]
时间: 2024-10-01 11:37:04