activemq持久化到mysql

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jjkang_/article/details/85495875

activemq持久化到mysql

所有的配置都在 activemq.xml中

  1. 在broker标签中
<persistenceAdapter>
            <kahaDB directory="${activemq.data}/kahadb"/>
        </persistenceAdapter>

这是activemq的默认持久化方式。如果需要持久化到MySQL中,可以屏蔽这句。
然后加上MySQL的

<persistenceAdapter>
            <jdbcPersistenceAdapter dataSource="#mysql-ds"/>
        </persistenceAdapter>
  1. 在beans标签中添加MySQL的数据源配置
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
			<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
			<property name="url" value="jdbc:mysql://localhost/activemqdb?relaxAutoCommit=true"/>
			<property name="username" value="root"/>
			<property name="password" value="love"/>
			<property name="maxActive" value="200"/>
			<property name="poolPreparedStatements" value="true"/>
		</bean>
  1. 需要把MySQL的jar包放到activemq中lib中
  2. 可以调用MessageProducer的setDeliveryMode方法设置持久化。根据我的实验,activemq应该是默认的就是持久化,而非非持久化。持久化到MySQL中之后,如果消费了的话,就会自动删除那个消息。

注意:如果你在windows环境下运行的activemq,要做数据库持久化的话,计算机名称不要有下划线。

猜你喜欢

转载自blog.csdn.net/jjkang_/article/details/85495875